Compare commits

...

7 Commits

7 changed files with 120 additions and 162 deletions

16
ghostfolio/.env Normal file
View File

@@ -0,0 +1,16 @@
COMPOSE_PROJECT_NAME=Prodigy-Ghostfolio
# CACHE
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=RedisChangeMe123!
# POSTGRES
POSTGRES_DB=ghostfolio-db
POSTGRES_USER=yourusername
POSTGRES_PASSWORD=PostgresChangeMe123!
# VARIOUS
ACCESS_TOKEN_SALT=yourRandomSaltValue
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?connect_timeout=300&sslmode=prefer
JWT_SECRET_KEY=openSSL-rand-hex-32byte

View File

@@ -9,13 +9,13 @@ services:
- ALL
security_opt:
- no-new-privileges:true
env_file:
- ../.env
env_file: # using portainer and this is how I pass env vars within portainer
- stack.env
ports:
- 3333:3333
depends_on:
postgres:
condition: service_healthy
# postgres:
# condition: service_healthy
redis:
condition: service_healthy
healthcheck:
@@ -23,31 +23,34 @@ services:
interval: 10s
timeout: 5s
retries: 5
postgres:
image: docker.io/library/postgres:15-alpine
container_name: gf-postgres
restart: unless-stopped
cap_drop:
- ALL
cap_add:
- CHOWN
- DAC_READ_SEARCH
- FOWNER
- SETGID
- SETUID
security_opt:
- no-new-privileges:true
env_file:
- ../.env
healthcheck:
test:
['CMD-SHELL', 'pg_isready -d "$${POSTGRES_DB}" -U $${POSTGRES_USER}']
interval: 10s
timeout: 5s
retries: 5
volumes:
- postgres:/var/lib/postgresql/data
networks:
- homelab
- ghostfolio_net
# Running separate compose container, 1 postgres for all apps
# postgres:
# image: docker.io/library/postgres:15-alpine
# container_name: gf-postgres
# restart: unless-stopped
# cap_drop:
# - ALL
# cap_add:
# - CHOWN
# - DAC_READ_SEARCH
# - FOWNER
# - SETGID
# - SETUID
# security_opt:
# - no-new-privileges:true
# env_file:
# - ../.env
# healthcheck:
# test:
# ['CMD-SHELL', 'pg_isready -d "$${POSTGRES_DB}" -U $${POSTGRES_USER}']
# interval: 10s
# timeout: 5s
# retries: 5
# volumes:
# - postgres:/var/lib/postgresql/data
redis:
image: docker.io/library/redis:alpine
@@ -59,7 +62,7 @@ services:
security_opt:
- no-new-privileges:true
env_file:
- ../.env
- stack.env
command:
- /bin/sh
- -c
@@ -70,6 +73,11 @@ services:
interval: 10s
timeout: 5s
retries: 5
networks:
- ghostfolio_net
volumes:
postgres:
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
homelab: # Sub-section, any network name or 'default' to edit default one created
external: true # This option causes compose to join the above network instead of making a _default one
ghostfolio_net:
external: false

View File

@@ -1,111 +1,22 @@
###################################################################################
# Database
###################################################################################
# NOTE: The following four database variables support Docker secrets by adding a *_FILE suffix to the variable name
# See the docker-compose documentation on secrets for additional details: https://docs.docker.com/compose/compose-file/compose-file-v3/#secrets
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_PASSWORD=YourPassword
DB_DATABASE_NAME=immich
# Optional Database settings:
# DB_PORT=5432
###################################################################################
# Redis
###################################################################################
REDIS_HOSTNAME=immich_redis
# REDIS_URL will be used to pass custom options to ioredis.
# Example for Sentinel
# {"sentinels":[{"host":"redis-sentinel-node-0","port":26379},{"host":"redis-sentinel-node-1","port":26379},{"host":"redis-sentinel-node-2","port":26379}],"name":"redis-sentinel"}
# REDIS_URL=ioredis://eyJzZW50aW5lbHMiOlt7Imhvc3QiOiJyZWRpcy1zZW50aW5lbDEiLCJwb3J0IjoyNjM3OX0seyJob3N0IjoicmVkaXMtc2VudGluZWwyIiwicG9ydCI6MjYzNzl9XSwibmFtZSI6Im15bWFzdGVyIn0=
# Optional Redis settings:
# Note: these parameters are not automatically passed to the Redis Container
# to do so, please edit the docker-compose.yml file as well. Redis is not configured
# via environment variables, only redis.conf or the command line
# REDIS_PORT=6379
# REDIS_DBINDEX=0
# REDIS_USERNAME=
# REDIS_PASSWORD=
# REDIS_SOCKET=
###################################################################################
# Upload File Location
#
# This is the location where uploaded files are stored.
###################################################################################
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
# The location where your uploaded files are stored
UPLOAD_LOCATION=/docker-containers/immich/upload
POSTGRES_LOCATION=/docker-containers/immich/postgres_data
EXTERNAL_PATH=/Documents
# The location where your database files are stored
DB_DATA_LOCATION=/docker-containers/immich/postgres_data
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=America/New_York
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
DB_PASSWORD=YourPassword
# The values below this line do not need to be changed
###################################################################################
# Typesense
###################################################################################
TYPESENSE_API_KEY=some-random-text
# TYPESENSE_ENABLED=false
# TYPESENSE_URL uses base64 encoding for the nodes json.
# Example JSON that was used:
# [
# { 'host': 'typesense-1.example.net', 'port': '443', 'protocol': 'https' },
# { 'host': 'typesense-2.example.net', 'port': '443', 'protocol': 'https' },
# { 'host': 'typesense-3.example.net', 'port': '443', 'protocol': 'https' },
# ]
# TYPESENSE_URL=ha://WwogICAgeyAnaG9zdCc6ICd0eXBlc2Vuc2UtMS5leGFtcGxlLm5ldCcsICdwb3J0JzogJzQ0MycsICdwcm90b2NvbCc6ICdodHRwcycgfSwKICAgIHsgJ2hvc3QnOiAndHlwZXNlbnNlLTIuZXhhbXBsZS5uZXQnLCAncG9ydCc6ICc0NDMnLCAncHJvdG9jb2wnOiAnaHR0cHMnIH0sCiAgICB7ICdob3N0JzogJ3R5cGVzZW5zZS0zLmV4YW1wbGUubmV0JywgJ3BvcnQnOiAnNDQzJywgJ3Byb3RvY29sJzogJ2h0dHBzJyB9LApd
###################################################################################
# Reverse Geocoding
#
# Reverse geocoding is done locally which has a small impact on memory usage
# This memory usage can be altered by changing the REVERSE_GEOCODING_PRECISION variable
# This ranges from 0-3 with 3 being the most precise
# 3 - Cities > 500 population: ~200MB RAM
# 2 - Cities > 1000 population: ~150MB RAM
# 1 - Cities > 5000 population: ~80MB RAM
# 0 - Cities > 15000 population: ~40MB RAM
####################################################################################
# DISABLE_REVERSE_GEOCODING=false
# REVERSE_GEOCODING_PRECISION=3
####################################################################################
# WEB - Optional
#
# Custom message on the login page, should be written in HTML form.
# For example:
# PUBLIC_LOGIN_PAGE_MESSAGE="This is a demo instance of Immich.<br><br>Email: <i>demo@demo.de</i><br>Password: <i>demo</i>"
####################################################################################
PUBLIC_LOGIN_PAGE_MESSAGE=Welcome to Sick Photo Backups
####################################################################################
# Alternative Service Addresses - Optional
#
# This is an advanced feature for users who may be running their immich services on different hosts.
# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
# Note: immich-microservices is bound to 3002, but no references are made
####################################################################################
IMMICH_WEB_URL=http://immich-web:3000
IMMICH_SERVER_URL=http://immich-server:3001
IMMICH_MACHINE_LEARNING_URL=http://immich-machine-learning:3003
####################################################################################
# Alternative API's External Address - Optional
#
# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
# Examples: http://localhost:3001, http://immich-api.example.com, etc
####################################################################################
IMMICH_API_URL_EXTERNAL=https://immich.example.com
IMMICH_VERSION=release
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

View File

@@ -38,7 +38,11 @@ services:
homelab:
aliases:
- immich # how to add multiple aliases
- immich-server
- immich-server
immich_net:
aliases:
- immich # how to add multiple aliases
- immich-server
immich-machine-learning:
container_name: immich_machine_learning
@@ -56,7 +60,7 @@ services:
healthcheck:
disable: false
networks: # Specify network for container
- homelab
- immich_net
redis:
container_name: immich_redis
@@ -65,7 +69,7 @@ services:
test: redis-cli ping || exit 1
restart: always
networks: # Specify network for container
- homelab
- immich_net
database:
container_name: immich_postgres
@@ -101,7 +105,7 @@ services:
]
restart: always
networks: # Specify network for container
- homelab
- immich_net
volumes:
pgdata:
@@ -109,4 +113,6 @@ volumes:
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
homelab:
external: true # This option causes compose to join the above network instead of making a _default one (supposedly)
external: true # This option causes compose to join the above network instead of making a _default one (supposedly)
immich_net:
external: false

View File

@@ -18,12 +18,12 @@ services:
# - ENABLE_WEBSOCKET_SUPPORT=false # didn't work, default true
# - WEBUI_AUTH=false # can't be any users in db
# # Required for multi-worker/multi-instance deployments
# - REDIS_URL=redis://redis-valkey-webui:6379/0
# Required for multi-worker/multi-instance deployments
- REDIS_URL=redis://redis-valkey-webui:6379/0
# # Required for websocket support
# - WEBSOCKET_MANAGER=redis
# - WEBSOCKET_REDIS_URL=redis://redis-valkey-webui:6379/1
# Required for websocket support
- WEBSOCKET_MANAGER=redis
- WEBSOCKET_REDIS_URL=redis://redis-valkey-webui:6379/1
volumes:
- /docker-containers/open-webui/data:/app/backend/data
@@ -34,17 +34,23 @@ services:
aliases:
- openwebui # adding multiple aliases under certain network
- open-wui
# depends_on:
# - redis-valkey-webui
openwebui_net:
aliases:
- openwebui_internal
depends_on:
- redis-valkey-webui
# redis-valkey-webui:
# image: redis:7
# container_name: redis-valkey-webui
# restart: unless-stopped
# networks:
# - homelab
redis-valkey-webui:
image: redis:7
container_name: redis-valkey-webui
restart: unless-stopped
networks:
- openwebui_net
networks:
homelab:
name: homelab # Networks can also be given a custom name
external: true # This option causes compose to join the above network instead of making a _default one
external: true # This option causes compose to join the above network instead of making a _default one
openwebui_net:
name: openwebui_net
external: false

View File

@@ -6,8 +6,6 @@ services:
image: docker.io/valkey/valkey:8-alpine
command: valkey-server --save 30 1 --loglevel warning
restart: unless-stopped
networks:
- homelab
volumes:
- valkey-data2:/data
logging:
@@ -15,6 +13,8 @@ services:
options:
max-size: "1m"
max-file: "1"
networks:
- searxng_net
searxng:
container_name: searxng
@@ -39,10 +39,15 @@ services:
homelab:
aliases:
- search # adding multiple aliases under certain network
searxng_net:
aliases:
- searxng_internal
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
homelab:
name: homelab # Networks can also be given a custom name
external: true # This option causes compose to join the above network instead of making a _default one
searxng_net:
external: false
volumes:
valkey-data2:

View File

@@ -12,12 +12,13 @@ services:
volumes:
- /Videos/TubeArchivist:/youtube
- /docker-containers/tubearchivist/cache:/cache
- /docker-containers/tubearchivist/nginx/default:/etc/nginx/sites-available/default:ro
environment:
- ES_URL=http://elasticsearch:9200 # needs protocol e.g. http and port
- REDIS_CON=redis://archivist-redis:6379 # don't add protocol
- HOST_UID=1000
- HOST_GID=1006
- TA_HOST=https://youtube.example.com https://tubearchivist.example.com https://yt.example.com http://192.168.1.239:8111 # set your host name
- TA_HOST=https://youtube.example.com https://tubearchivist.example.com https://yt.example.com http://192.168.1.239:8111 http://tubearchivist:8000 # set your host name
# - TA_PORT=8111 # to change default port nginx listens
- TA_USERNAME=tubearchivist # your initial TA credentials
- TA_PASSWORD=ChangeMe123 # your initial TA credentials
@@ -42,7 +43,10 @@ services:
- yt # adding multiple aliases under certain network
- youtube
- ytdl
# should redis be using elasticsearch? maybe that's why they were together?
tubearchivist_redis_net:
aliases:
- tubearchivist-local
# redis container for tubearchivist
archivist-redis:
image: redis
container_name: archivist-redis
@@ -54,7 +58,7 @@ services:
# depends_on:
# - archivist-es
networks: # Specify network for container
- homelab
- tubearchivist_redis_net
# Disabled because running independently, just want the dang kibana to work also.
# archivist-es:
@@ -79,3 +83,5 @@ services:
networks: # I don't know why but you have to specify the network 2x. In service, and in this tag area..
homelab:
external: true # This option causes compose to join the above network instead of making a _default one (supposedly) also forces to join instead of creating one
tubearchivist_redis_net:
external: false