Setup Maybe
Overview
The OS for your personal finances.
Important Docker Files
.env file
.env
NAME=maybe
SUB=budget
DOMAIN=
PORT=3000
APPDATA=
KEY_BASE=
DB_USER=maybe
DB_PASS=
DB_NAME=maybe
docker-compose.yml file
docker-compose.yml
services:
maybe:
container_name: ${NAME}
image: ghcr.io/maybe-finance/maybe:stable
restart: unless-stopped
volumes:
- ${APPDATA}/${NAME}/config:/rails/storage
networks:
- proxy
- internal-db
environment:
SELF_HOSTED: "true"
RAILS_FORCE_SSL: "false"
RAILS_ASSUME_SSL: "false"
GOOD_JOB_EXECUTION_MODE: async
SECRET_KEY_BASE: ${KEY_BASE}
DB_HOST: ${NAME}-db
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASS}
depends_on:
maybe-db:
condition: service_healthy
labels:
swag: enable
swag_address: ${NAME}
swag_port: ${PORT}
swag_proto: http
swag_url: ${SUB}.${DOMAIN}
com.centurylinklabs.watchtower.enable: true
maybe-db:
container_name: ${NAME}-db
image: postgres:17-alpine
restart: unless-stopped
volumes:
- ${APPDATA}/${NAME}/${NAME}-db:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${DB_NAME}
POSTGRES_PASSWORD: ${DB_PASS}
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}" ]
interval: 5s
timeout: 5s
retries: 5
networks:
- internal-db
labels:
com.centurylinklabs.watchtower.enable: true
networks:
proxy:
external: true
internal-db:
external: true
Start the Container
Start the Container
docker compose up -d