Files
appstore/apps/wealthfolio/3.8.0/docker-compose.yml
T

69 lines
2.0 KiB
YAML

services:
wealthfolio:
image: "wealthfolio/wealthfolio:3.8.0@sha256:3c6f117828949204029c2b4a391f039e62987b4e091139e11b04e6764b5f6866"
container_name: ${CONTAINER_NAME}
restart: unless-stopped
user: "0:0"
entrypoint:
- /bin/sh
- -ec
- >-
chown 1000:1000 /data /data/.runtime-env;
runtime_secret="$$(sed -n "s/^WF_SECRET_KEY='\([^']*\)'$/\1/p"
/data/.runtime-env | tail -n 1)";
runtime_hash="$$(sed -n "s/^WF_AUTH_PASSWORD_HASH='\([^']*\)'$/\1/p"
/data/.runtime-env | tail -n 1)";
printf '%s\n' "$$runtime_secret" | grep -Eq
'^([A-Za-z0-9._~-]{32}|[A-Za-z0-9+/]{43}=)$';
printf '%s\n' "$$runtime_hash" | grep -Eq
'^\$$argon2id\$$v=19\$$m=65536,t=3,p=1\$$[A-Za-z0-9+/]+={0,2}\$$[A-Za-z0-9+/]+={0,2}$$';
export WF_SECRET_KEY="$$runtime_secret";
export WF_AUTH_PASSWORD_HASH="$$runtime_hash";
exec su -p -s /bin/sh wealthfolio -c
'exec /usr/local/bin/wealthfolio-server'
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:8088"
environment:
- WF_LISTEN_ADDR=0.0.0.0:8088
- WF_DB_PATH=/data/wealthfolio.db
- WF_AUTH_REQUIRED=true
- WF_AUTH_TOKEN_TTL_MINUTES=60
- WF_COOKIE_SECURE=auto
- WF_CORS_ALLOW_ORIGINS=http://localhost:${PANEL_APP_PORT_HTTP},http://127.0.0.1:${PANEL_APP_PORT_HTTP}
- WF_REQUEST_TIMEOUT_MS=30000
- WF_MCP_ENABLED=false
cap_drop:
- ALL
cap_add:
- CHOWN
- DAC_OVERRIDE
- SETUID
- SETGID
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp:nodev,noexec,nosuid,size=64M
healthcheck:
test:
- CMD
- wget
- --quiet
- --tries=1
- --spider
- http://127.0.0.1:8088/api/v1/healthz
interval: 30s
timeout: 10s
start_period: 15s
retries: 3
volumes:
- "${APP_DATA_DIR}:/data"
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true