Compare commits
33 Commits
9ecd00f924
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| acb9ee5bfe | |||
| 01613be3c2 | |||
| c232240d66 | |||
| d3e13b4487 | |||
| 475fc92cf5 | |||
| 3734028f9b | |||
| 5f60c1d6f5 | |||
| 166ca11747 | |||
| ad6913ed49 | |||
| fcdb473197 | |||
| 48ae405177 | |||
| 02d2c5e663 | |||
| 179820cc99 | |||
| 4559f8d9be | |||
| 46a8025985 | |||
| 9d6ef2972f | |||
| ba3cd6a33c | |||
| 3b61ed27b7 | |||
| dc31fa844c | |||
| ddc49b364a | |||
| 392132220b | |||
| 85e44fe9d8 | |||
| 8fe3843aaa | |||
| 667e58edbb | |||
| 2759654c92 | |||
| e3d11b79bd | |||
| 4113da34b1 | |||
| 432d34452a | |||
| 58f4400a59 | |||
| 6b9aa0c7a1 | |||
| c5bb9257ad | |||
| be71b6be0e | |||
| 91ff71eda3 |
104
arr-stack/docker-compose.yaml
Normal file
104
arr-stack/docker-compose.yaml
Normal file
@@ -0,0 +1,104 @@
|
||||
services:
|
||||
qbittorrent:
|
||||
image: linuxserver/qbittorrent
|
||||
container_name: qbittorrent
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
- WEBUI_PORT=9865
|
||||
- TORRENTING_PORT=6881
|
||||
volumes:
|
||||
- /docker/qbittorrent/config:/config
|
||||
- /nfs/torrent:/downloads
|
||||
ports:
|
||||
- 8019:6881/tcp # BitTorrent TCP port
|
||||
- 8019:6881/udp # BitTorrent UDP port
|
||||
- 8020:9865/tcp # Additional port mapping
|
||||
restart: unless-stopped
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 3000M # limit runaway RAM usage
|
||||
|
||||
prowlarr:
|
||||
image: linuxserver/prowlarr
|
||||
container_name: prowlarr
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
volumes:
|
||||
- /docker/prowlarr/config:/config
|
||||
ports:
|
||||
- 8021:9696
|
||||
restart: unless-stopped
|
||||
|
||||
radarr:
|
||||
image: linuxserver/radarr
|
||||
container_name: radarr
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
volumes:
|
||||
- /docker/radarr/config:/config
|
||||
- /nfs/media/Movies:/data/media/movies
|
||||
- /nfs/torrent:/downloads
|
||||
ports:
|
||||
- 8022:7878
|
||||
restart: unless-stopped
|
||||
|
||||
sonarr:
|
||||
image: linuxserver/sonarr
|
||||
container_name: sonarr
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
volumes:
|
||||
- /docker/sonarr/config:/config
|
||||
- /nfs/media/Shows:/data/media/tv
|
||||
- /nfs/torrent:/downloads
|
||||
ports:
|
||||
- 8023:8989
|
||||
restart: unless-stopped
|
||||
|
||||
bazarr:
|
||||
image: linuxserver/bazarr
|
||||
container_name: bazarr
|
||||
environment:
|
||||
- PUID=1026
|
||||
- PGID=100
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
ports:
|
||||
- 8024:6767
|
||||
volumes:
|
||||
- /docker/bazarr:/config
|
||||
- /nfs/media/Movies:/data/media/movies
|
||||
- /nfs/media/Shows:/data/media/tv
|
||||
restart: unless-stopped
|
||||
|
||||
# flaresolverr:
|
||||
# # DockerHub mirror flaresolverr/flaresolverr:latest
|
||||
# image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
# container_name: flaresolverr
|
||||
# networks:
|
||||
# arr_stack_network:
|
||||
# ipv4_address: 172.100.0.15
|
||||
# environment:
|
||||
# - LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
# - LOG_HTML=${LOG_HTML:-false}
|
||||
# - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
||||
# - TZ=Asia/Ho_Chi_Minh
|
||||
# ports:
|
||||
# - "8102:8191"
|
||||
# restart: unless-stopped
|
||||
byparr:
|
||||
image: ghcr.io/thephaseless/byparr:latest
|
||||
container_name: byparr
|
||||
restart: unless-stopped
|
||||
shm_size: 2gb
|
||||
volumes:
|
||||
- /docker/byparr/screenshots:/app/screenshots
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
services:
|
||||
mybibliotheca:
|
||||
image: pickles4evaaaa/mybibliotheca:2.1.0
|
||||
ports:
|
||||
- "5054:5054"
|
||||
volumes:
|
||||
- /docker/bibliotheca:/app/data
|
||||
environment:
|
||||
- SECRET_KEY=27de3e8d4542d5c9f1a4e52ff400681d
|
||||
- SECURITY_PASSWORD_SALT=d27b5eca9de5ca952e1dc6c481afec5c
|
||||
- TIMEZONE=Asia/Ho_Chi_Minh
|
||||
- WORKERS=3
|
||||
restart: unless-stopped
|
||||
|
||||
13
filebrowser-quantum/docker-compose.yaml
Normal file
13
filebrowser-quantum/docker-compose.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
services:
|
||||
filebrowser:
|
||||
image: gtstef/filebrowser:beta
|
||||
environment:
|
||||
FILEBROWSER_CONFIG: "data/config.yaml" # overrides the default path which is ./config.yaml
|
||||
FILEBROWSER_ADMIN_PASSWORD: "duy@filebrowser1772003"
|
||||
TZ: "Asia/Ho_Chi_Minh"
|
||||
volumes:
|
||||
- /nfs/media/Course:/data/Course # Do not use a root "/" directory or include the "/var" folder
|
||||
- /docker/filebrowser-quantum/data:/home/filebrowser/data
|
||||
ports:
|
||||
- 8012:80
|
||||
restart: unless-stopped
|
||||
84
immich/docker-compose.yaml
Normal file
84
immich/docker-compose.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
#
|
||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||
#
|
||||
# Make sure to use the docker-compose.yml of the current release:
|
||||
#
|
||||
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||
#
|
||||
# The compose file on main may not be compatible with the latest release.
|
||||
|
||||
name: immich
|
||||
|
||||
services:
|
||||
immich-server:
|
||||
container_name: immich_server
|
||||
image: ghcr.io/immich-app/immich-server:release
|
||||
# extends:
|
||||
# file: hwaccel.transcoding.yml
|
||||
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- /nfs/media/photo/library:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
TZ: Asia/Ho_Chi_Minh
|
||||
UPLOAD_LOCATION: /nfs/media/photo/library
|
||||
DB_DATA_LOCATION: /volume2/docker/immich/postgres
|
||||
MACHINE_LEARNING_CACHE_FOLDER: /volume2/docker/immich/cache
|
||||
IMMICH_VERSION: release
|
||||
DB_PASSWORD: jK4Q9xvM29RN9V
|
||||
DB_USERNAME: postgres
|
||||
DB_DATABASE_NAME: immich
|
||||
ports:
|
||||
- '8017:2283'
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
immich-machine-learning:
|
||||
container_name: immich_machine_learning
|
||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:release
|
||||
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||
# file: hwaccel.ml.yml
|
||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
volumes:
|
||||
- /docker/immich/model-cache:/cache
|
||||
environment:
|
||||
TZ: Asia/Ho_Chi_Minh
|
||||
DB_PASSWORD: jK4Q9xvM29RN9V
|
||||
DB_USERNAME: postgres
|
||||
DB_DATABASE_NAME: immich
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
|
||||
environment:
|
||||
POSTGRES_PASSWORD: jK4Q9xvM29RN9V
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_DB: immich
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
# Uncomment the DB_STORAGE_TYPE: 'HDD' var if your database isn't stored on SSDs
|
||||
# DB_STORAGE_TYPE: 'HDD'
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||
- /docker/immich/postgres:/var/lib/postgresql/data
|
||||
shm_size: 128mb
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
@@ -16,9 +16,3 @@ services:
|
||||
devices:
|
||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||
restart: 'unless-stopped'
|
||||
networks:
|
||||
- jellyfin
|
||||
|
||||
networks:
|
||||
jellyfin:
|
||||
driver: bridge
|
||||
|
||||
12
kavita/docker-compose.yaml
Normal file
12
kavita/docker-compose.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
services:
|
||||
kavita:
|
||||
image: jvmilazz0/kavita:latest # Using the stable branch from the official dockerhub repo.
|
||||
container_name: kavita
|
||||
volumes:
|
||||
- /docker/kavita/data:/kavita/config # /kavita/config must not be changed
|
||||
- /nfs/media/Books/Kavita Library:/library
|
||||
environment:
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
ports:
|
||||
- "8015:5000"
|
||||
restart: unless-stopped
|
||||
14
kosync/docker-compose.yaml
Normal file
14
kosync/docker-compose.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
kosync:
|
||||
image: koreader/kosync:latest
|
||||
container_name: kosync
|
||||
ports:
|
||||
- "8014:7200"
|
||||
volumes:
|
||||
- /docker/kosync/logs/app:/app/koreader-sync-server/logs
|
||||
- /docker/kosync/logs/redis:/var/log/redis
|
||||
- /docker/kosync/data/redis:/var/lib/redis
|
||||
restart: unless-stopped
|
||||
|
||||
11
navidrome/docker-compose.yaml
Normal file
11
navidrome/docker-compose.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
navidrome:
|
||||
container_name: navidrome
|
||||
image: deluan/navidrome:latest
|
||||
user: 1026:100 # should be owner of volumes
|
||||
ports:
|
||||
- "8016:4533"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "/docker/navidrome:/data:z"
|
||||
- "/nfs/media/Musics:/music:ro"
|
||||
19
obsidian-live-sync/docker-compose.yaml
Normal file
19
obsidian-live-sync/docker-compose.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
couchdb-obsidian-livesync:
|
||||
container_name: obsidian-livesync
|
||||
image: couchdb:3.3.3
|
||||
environment:
|
||||
#- PUID=1026
|
||||
#- PGID=100
|
||||
- UMASK=0022
|
||||
- TZ=Asia/Ho_Chi_Minh
|
||||
- COUCHDB_USER=duynguyen # optionally change me
|
||||
- COUCHDB_PASSWORD=duy@couchdb1772003 # definitely change me
|
||||
volumes:
|
||||
- /docker/couchdb-obsidian-livesync/data:/opt/couchdb/data
|
||||
- /docker/couchdb-obsidian-livesync/etc/local.d:/opt/couchdb/etc/local.d
|
||||
ports:
|
||||
- "8018:5984"
|
||||
restart: unless-stopped
|
||||
70
paperless-ngx/docker-compose.yaml
Normal file
70
paperless-ngx/docker-compose.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
services:
|
||||
broker:
|
||||
image: docker.io/library/redis:8
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /docker/paperless-ngx/redis/data:/data
|
||||
db:
|
||||
image: docker.io/library/postgres:18
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /docker/paperless-ngx/postgresql/data:/var/lib/postgresql
|
||||
environment:
|
||||
POSTGRES_DB: paperless
|
||||
POSTGRES_USER: paperless
|
||||
POSTGRES_PASSWORD: paperless
|
||||
webserver:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
- broker
|
||||
ports:
|
||||
- "8025:8000"
|
||||
volumes:
|
||||
- /docker/paperless-ngx/data:/usr/src/paperless/data
|
||||
- /docker/paperless-ngx/media:/usr/src/paperless/media
|
||||
- /docker/paperless-ngx/export:/usr/src/paperless/export
|
||||
- /docker/paperless-ngx/consume:/usr/src/paperless/consume
|
||||
environment:
|
||||
PAPERLESS_URL: https://paperlessngx.fireflylab.cc
|
||||
PAPERLESS_REDIS: redis://broker:6379
|
||||
PAPERLESS_DBHOST: db
|
||||
PAPERLESS_TIKA_ENABLED: 1
|
||||
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
|
||||
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
|
||||
PAPERLESS_APPS: allauth.socialaccount.providers.openid_connect
|
||||
PAPERLESS_SOCIALACCOUNT_PROVIDERS: >
|
||||
{
|
||||
"openid_connect": {
|
||||
"OAUTH_PKCE_ENABLED": true,
|
||||
"APPS": [
|
||||
{
|
||||
"provider_id": "authentik",
|
||||
"name": "authentik",
|
||||
"client_id": "cLQnMe9SMQ2gcnWtFlOMZikPLU8Vh3a2NleYnbBB",
|
||||
"secret": "Fvb5cfPtLM1PZtNUYEi29L1zZmcm64Nwt1hO4gQhcJupgpUy917QtKAgFplpYp6DVvW0jf5jJW75PMDjWm3ZB79oRMjFmYCEesStqwYWDL0Alzvc9zYPGDruKDADnXyJ",
|
||||
"settings": {
|
||||
"server_url": "https://authentik.fireflylab.cc/application/o/paperless-ngx/.well-known/openid-configuration",
|
||||
"fetch_userinfo": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"SCOPE": ["openid", "profile", "email"]
|
||||
}
|
||||
}
|
||||
PAPERLESS_LOGOUT_REDIRECT_URL: "https://authentik.company/application/o/<application_slug>/end-session/"
|
||||
PAPERLESS_SOCIAL_AUTO_SIGNUP: true
|
||||
PAPERLESS_SOCIALACCOUNT_ALLOW_SIGNUPS: true
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:8.25
|
||||
restart: unless-stopped
|
||||
# The gotenberg chromium route is used to convert .eml files. We do not
|
||||
# want to allow external content like tracking pixels or even javascript.
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
tika:
|
||||
image: docker.io/apache/tika:latest
|
||||
restart: unless-stopped
|
||||
@@ -1,16 +0,0 @@
|
||||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
ports:
|
||||
- 9000:9000
|
||||
volumes:
|
||||
- /docker/portainer/data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- portainer
|
||||
|
||||
networks:
|
||||
portainer:
|
||||
driver: bridge
|
||||
117
sparkyfitness/.env
Normal file
117
sparkyfitness/.env
Normal file
@@ -0,0 +1,117 @@
|
||||
# SparkyFitness Environment Variables
|
||||
# Copy this file to .env in the root directory and fill in your own values before running 'docker-compose up'.
|
||||
|
||||
# --- PostgreSQL Database Settings ---
|
||||
# These values should match the ones used by your PostgreSQL container.
|
||||
# For local development (running Node.js directly), use 'localhost' or '127.0.0.1' if PostgreSQL is on your host.
|
||||
SPARKY_FITNESS_DB_NAME=sparkyfitness_db
|
||||
#SPARKY_FITNESS_DB_USER is super user for DB initialization and migrations.
|
||||
SPARKY_FITNESS_DB_USER=sparky
|
||||
SPARKY_FITNESS_DB_PASSWORD=changeme_db_password
|
||||
# Application database user with limited privileges. it can be changed any time after initialization.
|
||||
SPARKY_FITNESS_APP_DB_USER=sparky_app
|
||||
SPARKY_FITNESS_APP_DB_PASSWORD=password
|
||||
|
||||
# For Docker Compose deployments, SPARKY_FITNESS_DB_HOST will be the service name (e.g., 'sparkyfitness-db').
|
||||
SPARKY_FITNESS_DB_HOST=sparkyfitness-db
|
||||
#SPARKY_FITNESS_DB_PORT=5432 # Optional. Defaults to 5432 if not specified.
|
||||
|
||||
# --- Backend Server Settings ---
|
||||
# The hostname or IP address of the backend server.
|
||||
# For Docker Compose, this is typically the service name (e.g., 'sparkyfitness-server').
|
||||
# For local development or other deployments, this might be 'localhost' or a specific IP.
|
||||
SPARKY_FITNESS_SERVER_HOST=sparkyfitness-server
|
||||
# The external port the server will be exposed on.
|
||||
SPARKY_FITNESS_SERVER_PORT=3010
|
||||
|
||||
|
||||
|
||||
# The public URL of your frontend (e.g., https://fitness.example.com). This is crucial for CORS security.
|
||||
# For local development, use http://localhost:8080. For production, use your domain with https.
|
||||
SPARKY_FITNESS_FRONTEND_URL=http://192.168.1.41:8010
|
||||
|
||||
# Logging level for the server (e.g., INFO, DEBUG, WARN, ERROR)
|
||||
SPARKY_FITNESS_LOG_LEVEL=ERROR
|
||||
|
||||
# Node.js environment mode (e.g., development, production, test)
|
||||
# Set to 'production' for deployment to ensure optimal performance and security.
|
||||
NODE_ENV=production
|
||||
|
||||
# Server timezone. Use a TZ database name (e.g., 'America/New_York', 'Etc/UTC').
|
||||
# This affects how dates/times are handled by the server if not explicitly managed in code.
|
||||
TZ=Asia/Ho_Chi_Minh
|
||||
|
||||
# --- Security Settings ---
|
||||
# A 64-character hex string for data encryption.
|
||||
# You can generate a secure key with the following command:
|
||||
# openssl rand -hex 32
|
||||
# or
|
||||
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
||||
# Changing this will invalidate existing encrypted data. You will need to delete and add External Data sources again.
|
||||
SPARKY_FITNESS_API_ENCRYPTION_KEY=99f949101cfda019e7a7a844902fcb04c51a1778776cd2a02a5533d850310c1d
|
||||
# For Docker Swarm/Kubernetes secrets, you can use a file-based secret:
|
||||
# SPARKY_FITNESS_API_ENCRYPTION_KEY_FILE=/run/secrets/sparkyfitness_api_key
|
||||
|
||||
# A secret key for signing JSON Web Tokens (JWTs). Make this a long, random, and secure string.
|
||||
# You can generate a secure key with the following command:
|
||||
# openssl rand -base64 32
|
||||
# or
|
||||
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
||||
# This can be changed any time.
|
||||
JWT_SECRET=BBRhWgtWhMxpex/hauiy93WlOnBmatjAkezrciLb7CU=
|
||||
# For Docker Swarm/Kubernetes secrets, you can use a file-based secret:
|
||||
# JWT_SECRET_FILE=/run/secrets/sparkyfitness_jwt_secret
|
||||
|
||||
# --- Signup Settings ---
|
||||
# Set to 'true' to disable new user registrations.
|
||||
SPARKY_FITNESS_DISABLE_SIGNUP=false
|
||||
|
||||
# --- Admin Settings ---
|
||||
# Set the email of a user to automatically grant admin privileges on server startup.
|
||||
# This is useful for development or initial setup.
|
||||
# Example: SPARKY_FITNESS_ADMIN_EMAIL=admin@example.com
|
||||
# Optional. If not set, no admin user will be created automatically.
|
||||
# SPARKY_FITNESS_ADMIN_EMAIL=
|
||||
|
||||
# --- Login Management Fail-Safe ---
|
||||
# Set to 'true' to force email/password login to be enabled, overriding any in-app settings.
|
||||
# This is a fail-safe to prevent being locked out if OIDC is misconfigured.
|
||||
SPARKY_FITNESS_FORCE_EMAIL_LOGIN=true
|
||||
|
||||
# --- Email Settings (Optional) ---
|
||||
# Configure these variables if you want to enable email notifications (e.g., for password resets).
|
||||
# If not configured, email functionality will be disabled.
|
||||
# SPARKY_FITNESS_EMAIL_HOST=smtp.example.com
|
||||
# SPARKY_FITNESS_EMAIL_PORT=587
|
||||
# SPARKY_FITNESS_EMAIL_SECURE=true # Use 'true' for TLS/SSL, 'false' for plain text
|
||||
# SPARKY_FITNESS_EMAIL_USER=your_email@example.com
|
||||
# SPARKY_FITNESS_EMAIL_PASS=your_email_password
|
||||
# SPARKY_FITNESS_EMAIL_FROM=no-reply@example.com
|
||||
|
||||
# --- Volume Paths (Optional) ---
|
||||
# These paths define where Docker volumes will store persistent data on your host.
|
||||
# If not set, Docker will manage volumes automatically in its default location.
|
||||
# DB_PATH=../postgresql # Path for PostgreSQL database data
|
||||
# SERVER_BACKUP_PATH=./backup # Path for server backups
|
||||
# SERVER_UPLOADS_PATH=./uploads # Path for profile pictures and exercise images
|
||||
|
||||
|
||||
# --- Start of Garmin Integration Settings ---
|
||||
#Below variables are needed only for Garmin integration. If you don't use Garmin integration, you can remove them in your .env file.
|
||||
|
||||
|
||||
# The URL for the Garmin microservice.
|
||||
# For Docker Compose, this would typically be the service name and port (e.g., 'http://sparkyfitness-garmin:8000').
|
||||
# For local development, use 'http://localhost:8000' or the port you've configured.
|
||||
|
||||
GARMIN_MICROSERVICE_URL=http://sparkyfitness-garmin:8000
|
||||
|
||||
|
||||
# This is used for Garmin Connect synchronization.
|
||||
# If you are not using Garmin integration, you don't need this. Make sure this matches with GARMIN_MICROSERVICE_URL.
|
||||
GARMIN_SERVICE_PORT=8000
|
||||
|
||||
# set to true for China region. Everything else should be false. Optional - defaults to false
|
||||
GARMIN_SERVICE_IS_CN=false
|
||||
|
||||
# --- End of Garmin Integration Settings ---
|
||||
70
sparkyfitness/docker-compose.yml
Normal file
70
sparkyfitness/docker-compose.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
services:
|
||||
sparkyfitness-db:
|
||||
image: postgres:15-alpine
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_DB: sparkyfitness_db
|
||||
POSTGRES_USER: sparky
|
||||
POSTGRES_PASSWORD: changeme_db_password
|
||||
volumes:
|
||||
- /docker/sparkyfitness/postgresql:/var/lib/postgresql/data
|
||||
|
||||
sparkyfitness-server:
|
||||
image: codewithcj/sparkyfitness_server:latest # Use pre-built image
|
||||
environment:
|
||||
SPARKY_FITNESS_LOG_LEVEL: ERROR
|
||||
SPARKY_FITNESS_DB_USER: sparky
|
||||
SPARKY_FITNESS_DB_HOST: sparkyfitness-db # Use the service name 'sparkyfitness-db' for inter-container communication
|
||||
SPARKY_FITNESS_DB_NAME: sparkyfitness_db
|
||||
SPARKY_FITNESS_DB_PASSWORD: changeme_db_password
|
||||
SPARKY_FITNESS_APP_DB_USER: sparky_app
|
||||
SPARKY_FITNESS_APP_DB_PASSWORD: password
|
||||
SPARKY_FITNESS_DB_PORT: 5432
|
||||
SPARKY_FITNESS_API_ENCRYPTION_KEY: 99f949101cfda019e7a7a844902fcb04c51a1778776cd2a02a5533d850310c1d
|
||||
# Uncomment the line below and comment the line above to use a file-based secret
|
||||
# SPARKY_FITNESS_API_ENCRYPTION_KEY_FILE: /run/secrets/sparkyfitness_api_key
|
||||
|
||||
JWT_SECRET: "BBRhWgtWhMxpex/hauiy93WlOnBmatjAkezrciLb7CU="
|
||||
# Uncomment the line below and comment the line above to use a file-based secret
|
||||
# JWT_SECRET_FILE: /run/secrets/sparkyfitness_jwt_secret
|
||||
SPARKY_FITNESS_FRONTEND_URL: "https://sparkyfitness.fireflylab.cc"
|
||||
SPARKY_FITNESS_DISABLE_SIGNUP: true
|
||||
SPARKY_FITNESS_ADMIN_EMAIL: huonghaiduynhim@gmail.com #User with this email can access the admin panel
|
||||
SPARKY_FITNESS_EMAIL_HOST: ${SPARKY_FITNESS_EMAIL_HOST}
|
||||
SPARKY_FITNESS_EMAIL_PORT: ${SPARKY_FITNESS_EMAIL_PORT}
|
||||
SPARKY_FITNESS_EMAIL_SECURE: ${SPARKY_FITNESS_EMAIL_SECURE}
|
||||
SPARKY_FITNESS_EMAIL_USER: ${SPARKY_FITNESS_EMAIL_USER}
|
||||
SPARKY_FITNESS_EMAIL_PASS: ${SPARKY_FITNESS_EMAIL_PASS}
|
||||
SPARKY_FITNESS_EMAIL_FROM: ${SPARKY_FITNESS_EMAIL_FROM}
|
||||
GARMIN_MICROSERVICE_URL: http://sparkyfitness-garmin:8000 # Add Garmin microservice URL
|
||||
restart: always
|
||||
depends_on:
|
||||
- sparkyfitness-db # Backend depends on the database being available
|
||||
volumes:
|
||||
- /docker/sparkyfitness/backup:/app/SparkyFitnessServer/backup # Mount volume for backups
|
||||
- /docker/sparkyfitness/uploads:/app/SparkyFitnessServer/uploads # Mount volume for Profile pictures and excercise images
|
||||
|
||||
sparkyfitness-frontend:
|
||||
image: codewithcj/sparkyfitness:latest # Use pre-built image
|
||||
ports:
|
||||
- "8010:80" # Map host port 8080 to container port 80 (Nginx)
|
||||
restart: always
|
||||
depends_on:
|
||||
- sparkyfitness-server # Frontend depends on the server
|
||||
#- sparkyfitness-garmin # Frontend depends on Garmin microservice. Enable if you are using Garmin Connect features.
|
||||
|
||||
# Garmin integration is still work in progress. Enable once table is ready.
|
||||
# sparkyfitness-garmin:
|
||||
# image: codewithcj/sparkyfitness_garmin:latest
|
||||
# container_name: sparkyfitness-garmin
|
||||
# environment:
|
||||
# GARMIN_MICROSERVICE_URL: http://sparkyfitness-garmin:${GARMIN_SERVICE_PORT}
|
||||
# GARMIN_SERVICE_PORT: ${GARMIN_SERVICE_PORT}
|
||||
# GARMIN_SERVICE_IS_CN: ${GARMIN_SERVICE_IS_CN} # set to true for China region. Everything else should be false. Optional - defaults to false
|
||||
# networks:
|
||||
# - sparkyfitness-network
|
||||
# restart: unless-stopped
|
||||
# depends_on:
|
||||
# - sparkyfitness-db
|
||||
# - sparkyfitness-server
|
||||
|
||||
11
termix/docker-compose.yaml
Normal file
11
termix/docker-compose.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
termix:
|
||||
image: ghcr.io/lukegus/termix:latest
|
||||
container_name: termix
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8011:8080"
|
||||
volumes:
|
||||
- /docker/termix/data:/app/data
|
||||
environment:
|
||||
PORT: "8080"
|
||||
11
vaultwarden/docker-compose.yaml
Normal file
11
vaultwarden/docker-compose.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
DOMAIN: "https://vaultwarden.fireflylab.cc"
|
||||
volumes:
|
||||
- /docker/vaultwarden:/data/
|
||||
ports:
|
||||
- 8013:80
|
||||
Reference in New Issue
Block a user