diff --git a/maybe/data/postgres/.gitkeep b/maybe/data/postgres/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/maybe/data/rails/.gitkeep b/maybe/data/rails/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/maybe/docker-compose.yml b/maybe/docker-compose.yml new file mode 100644 index 0000000..a496c04 --- /dev/null +++ b/maybe/docker-compose.yml @@ -0,0 +1,51 @@ +version: '3.7' + +services: + app_proxy: + environment: + APP_HOST: maybe_web_1 + APP_PORT: 3063 + + web: + image: ghcr.io/maybe-finance/maybe:0.1.0-alpha.7@sha256:ea5897545aaea97e80de7f6ccafe953ad55e9a766070383215a693a9f85f12e0 + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/rails:/rails/storage + # Self-hosted Maybe requires a Synth API key (https://synthfinance.com/) for basic multi-currency support. + # Ideally Maybe will support API key input via the UI in the future, but for now we create a persistent .env file for Advanced users to input their API key and restart Maybe (see pre-install hook) + env_file: + - ${APP_DATA_DIR}/.env + environment: + SELF_HOSTING_ENABLED: "true" + PORT: 3063 + DB_HOST: db + DB_PORT: 5432 + DATABASE_URL: postgres://maybe:maybe@db:5432/maybe + RAILS_FORCE_SSL: "false" + RAILS_ASSUME_SSL: "false" + POSTGRES_DB: maybe + POSTGRES_USER: maybe + POSTGRES_PASSWORD: maybe + GOOD_JOB_EXECUTION_MODE: async + SECRET_KEY_BASE: $APP_SEED + depends_on: + db: + condition: service_healthy + + db: + image: postgres:16@sha256:1bf73ccae25238fa555100080042f0b2f9be08eb757e200fe6afc1fc413a1b3c + restart: on-failure + stop_grace_period: 1m + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + POSTGRES_DB: maybe + POSTGRES_USER: maybe + POSTGRES_PASSWORD: maybe + PGDATA: /var/lib/postgresql/data/pgdata + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U maybe'] + interval: 10s + timeout: 5s + retries: 5 diff --git a/maybe/hooks/pre-install b/maybe/hooks/pre-install new file mode 100755 index 0000000..d224ee0 --- /dev/null +++ b/maybe/hooks/pre-install @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -euo pipefail + +# As of 26 June 2024, self-hosted Maybe requires a Synth API key (https://synthfinance.com/) for basic multi-currency support. +# Ideally Maybe will support API key input via the UI in the future, but for now we create a persistent .env file for Advanced users to input their API key and restart Maybe. + +PERSISTENT_ENV_FILE="$(dirname "${BASH_SOURCE[0]}")/../.env" +DESIRED_OWNER="1000:1000" + +create_env_file() { + cat < "${PERSISTENT_ENV_FILE}" +# Uncomment the SYNTH_API_KEY line and replace YOUR_SYNTH_API_KEY with your personal Synth API key +# SYNTH_API_KEY=YOUR_SYNTH_API_KEY +EOF + chown "${DESIRED_OWNER}" "${PERSISTENT_ENV_FILE}" +} + +if [[ ! -f "${PERSISTENT_ENV_FILE}" ]]; then + echo ".env file for Maybe has not been created yet. Creating one now..." + create_env_file +fi + diff --git a/maybe/umbrel-app.yml b/maybe/umbrel-app.yml new file mode 100644 index 0000000..7f4496e --- /dev/null +++ b/maybe/umbrel-app.yml @@ -0,0 +1,39 @@ +manifestVersion: 1.1 +id: maybe +category: finance +name: Maybe +version: 'v0.1.0-alpha.7' +tagline: The OS for your personal finances +description: >- + Maybe is a fully (your finances are secure) open-source OS for your personal finances built by + a small team alongside an incredible community. + + + This is an early access release of Maybe that is only available to those who self-host. + Maybe is under active development and is still working towards a stable release with a full feature set. + + + 🛠️ MULTI-CURRENCY SUPPORT + + + Most currently available features will work out of the box. However, Maybe requires a Synth API key if you would like to use multi-currency support. + + 1. Sign up for a Synth API key at https://synthfinance.com/ + + 2. Add your Synth API key to the .env file at ~/umbrel/app-data/maybe/.env +releaseNotes: "" +developer: Maybe +website: https://maybe.co/ +dependencies: [] +repo: https://github.com/maybe-finance +support: https://github.com/maybe-finance/discussions +port: 3063 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: '' +defaultUsername: '' +defaultPassword: '' +submitter: CaptainCodeman +submission: https://github.com/getumbrel/umbrel-apps/pull/1105