Dockers/docker-compose.yml.bak
2024-04-16 18:24:34 -06:00

408 lines
12 KiB
YAML

version: "3.8"
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
mysql_data:
romm_resources:
romm_redis_data:
gitlab_redis_data:
name: gitlab_redis_data
gitlab_postgresql_data:
name: gitlab_postgresql_data
gitlab_data:
name: gitlab_data
services:
portainer_agent: #Portainer is a web UI for managing your docker containers. This container is just the agent which you need to pair with the portainer-ce host container https://www.portainer.io/
image: portainer/agent:2.19.3
container_name: portainer_agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
ports:
- "9001:9001"
restart: always
mastodon-redis: # data structure server for mastodon https://redis.io/docs/about/
image: redis
container_name: mastodon-redis
network_mode: mastodonnet
volumes:
- ${DATA_PATH}/mastodon/redis:/data'
restart: unless-stopped
mastodon-db: # database for mastodon https://hub.docker.com/_/postgres
image: postgres:15.2
container_name: mastodon-db
network_mode: mastodonnet
environment:
- POSTGRES_USER=${MASTODON_DB_USER}
- POSTGRES_PASSWORD=${MASTODON_DB_PASS}
volumes:
- ${DATA_PATH}/mastodon/postgres:/var/lib/postgresql/data
restart: unless-stopped
mastodon-elasticsearch: # search and analytics engine for mastodon https://hub.docker.com/_/elasticsearch
image: elasticsearch:8.8.0
container_name: mastodon-elasticsearch
network_mode: mastodonnet
environment:
- discovery.type=single-node
- xpack.ml.enabled=false
- xpack.security.enabled=false
restart: unless-stopped
mastodon: # activitypub microbloggin social network https://docs.linuxserver.io/images/docker-mastodon/#version-tags
image: lscr.io/linuxserver/mastodon:latest
container_name: mastodon
network_mode: mastodonnet
environment:
- PUID=${UID}
- PGID=${GID}
- TZ=${TZ}
- LOCAL_DOMAIN=${MASTODON_DOMAIN}
- REDIS_HOST=mastodon-redis
- REDIS_PORT=6379
- DB_HOST=mastodon-db
- DB_USER=${MASTODON_DB_USER}
- DB_NAME=mastodon
- DB_PASS=${MASTODON_DB_PASS}
- DB_PORT=5432
- ES_ENABLED=true
- SECRET_KEY_BASE=${MASTODON_SECRET_KEY_BASE}
- OTP_SECRET=${MASTODON_OTP_SECRET}
- VAPID_PRIVATE_KEY=${MASTODON_VAPID_PRIVATE_KEY}
- VAPID_PUBLIC_KEY=${MASTODON_VAPID_PUBLIC_KEY}
- SMTP_SERVER=${SMTP_SERVER}
- SMTP_PORT=${SMTP_PORT}
- SMTP_LOGIN=${SMTP_USER}
- SMTP_PASSWORD=${SMTP_PASS}
- SMTP_FROM_ADDRESS=${SMTP_FROM}
- LDAP_ENABLED=true
- LDAP_METHOD=simple
- LDAP_HOST=${LDAP_SERVER}
- LDAP_PORT=${LDAP_PORT}
- LDAP_BASE=${LDAP_BASE}
- LDAP_SEARCH_FILTER=${LDAP_FILTER}
- LDAP_BIND_DN=${LDAP_BIND_DN}
- LDAP_PASSWORD=${LDAP_BIND_PASS}
- LDAP_UID=uid
- LDAP_MAIL=mail
- LDAP_UID_CONVERSION_ENABLED=true
- S3_ENABLED=false
- WEB_DOMAIN=${MASTODON_WEB_DOMAIN}
- ES_HOST=mastodon-elasticsearch
- ES_PORT=9200
- SIDEKIQ_ONLY=false
- SIDEKIQ_QUEUE=
- SIDEKIQ_DEFAULT=false
- SIDEKIQ_THREADS=5
- DB_POOL=5
volumes:
- ${DATA_PATH}/mastodon/config:/config
ports:
- ${MASTODON_HTTP_PORT}:80
- ${MASTODON_HTTPS_PORT}:443
restart: unless-stopped
mc-nginx: # I use this to host a webpage at my minecraft ip
image: nginx
container_name: mc-nginx
volumes:
- ${DATA_PATH}/mc-nginx/src:/usr/share/nginx/html
ports:
- ${MC_NGINX_PORT}:80
restart: unless-stopped
mc-smp: # minecraft paper server. The config here and options in .env will get you a working server, but you might want to customize it further https://docker-minecraft-server.readthedocs.io/
image: itzg/minecraft-server
container_name: mc-smp
ports:
- ${MC_SMP_JAVA_PORT}:25565/tcp
- ${MC_SMP_JAVA_PORT}:25565/udp
- ${MC_SMP_BEDROCK_PORT}:19132/tcp
- ${MC_SMP_BEDROCK_PORT}:19132/udp
- ${MC_DYNMAP_PORT}:8123
environment:
- EULA=TRUE
- UID=${UID}
- GID=${GID}
- EXEC_DIRECTLY=TRUE
- MEMORY=4G
- VERSION=LATEST
- TYPE=PAPER
- SPIGET_RESOURCES=18494
- MODS_FILE=/extras/mods.txt
- DIFFICULTY=${MC_SMP_DIFFICULTY}
- MOTD=${MC_SMP_MOTD}
- OPS=${MC_SMP_OPS}
- ICON=/extras/server-icon.png
- MAX_PLAYERS=${MC_SMP_MAX_PLAYERS}
- ALLOW_NETHER=TRUE
- ANNOUNCE_PLAYER_ACHIEVEMENTS=TRUE
- GENERATE_STRUCTURES=TRUE
- MODE=survival
- SERVER_NAME=${MC_SMP_NAME}
- ENABLE_ROLLING_LOGS=TRUE
- TZ=${TZ}
- SEED=${MC_SMP_SEED}
tty: true
stdin_open: true
volumes:
- ${DATA_PATH}/mc-smp/data:/data
- ${DATA_PATH}/mc-smp/extras:/extras
restart: unless-stopped
emulatorjs: # play many older video game systems via a web-based emulator https://emulatorjs.org/
image: lscr.io/linuxserver/emulatorjs:latest
container_name: emulatorjs
environment:
- PUID=33
- PGID=0
- TZ=${TZ}
volumes:
- ${DATA_PATH}/Emulatorjs/config:/config
- ${DATA_PATH}/Emulatorjs/data:/data
- ${DATA_PATH}/local/roms:/roms
ports:
- ${EMUJS_BACKEND_PORT}:3000
- ${EMUJS_PORT}:80
restart: unless-stopped
# romm:
# image: rommapp/romm:latest
# container_name: romm
# restart: unless-stopped
# environment:
# - DB_HOST=romm-db
# - DB_NAME=romm # Should match MYSQL_DATABASE in mariadb
# - DB_USER=romm-user # Should match MYSQL_USER in mariadb
# - DB_PASSWD=${ROMM_DB_PASS} # Should match MYSQL_PASSWORD in mariadb
# - IGDB_CLIENT_ID=${ROMM_IGDB_ID} # Generate an ID and SECRET in IGDB
# - IGDB_CLIENT_SECRET=${ROMM_IGDB_KEY} # https://api-docs.igdb.com/#account-creation
# - MOBYGAMES_API_KEY=${ROMM_MOBYGAMES_APIKEY} # https://www.mobygames.com/info/api/
# - ROMM_AUTH_SECRET_KEY=${ROMM_AUTH_KEY} # Generate a key with `openssl rand -hex 32`
# - ROMM_AUTH_USERNAME=${ROMM_USER}
# - ROMM_AUTH_PASSWORD=${ROMM_PASS} # default: admin
# volumes:
# - ${DATA_PATH}/romm/resources:/romm/resources # Resources fetched from IGDB (covers, screenshots, etc.)
# - romm_redis_data:/redis-data # Cached data for background tasks
# - ${DATA_PATH}/local/roms:/romm/library/roms # Your game library
# - ${DATA_PATH}/romm/assets:/romm/assets # Uploaded saves, states, etc.
# - ${DATA_PATH}/romm/config:/romm/config # Path where config.yml is stored
# ports:
# - 308:8080
# depends_on:
# - romm-db
# romm-db:
# image: mariadb:latest
# container_name: romm-db
# restart: unless-stopped
# environment:
# - MYSQL_ROOT_PASSWORD=${ROMMDB_ROOT_PASS} # Use a unique, secure password
# - MYSQL_DATABASE=romm
# - MYSQL_USER=romm-user
# - MYSQL_PASSWORD=${ROMM_DB_PASS}
# volumes:
# - mysql_data:/var/lib/mysql
all-in-one: #nextcloud cloud storage - the aio image provides significant functionality with minimal setup https://github.com/nextcloud/all-in-one
image: nextcloud/all-in-one:latest
container_name: nextcloud-aio-mastercontainer
environment:
- APACHE_PORT=11000
- APACHE_IP_BINDING=0.0.0.0
- NEXTCLOUD_DATADIR=${DATA_PATH}/nextcloud-aio/nextcloud
- NEXTCLOUD_MOUNT=/mnt/2TB/local/
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config:rw
- '/var/run/docker.sock:/var/run/docker.sock:ro'
ports:
- 8080:8080
restart: always
# protonmail-bridge:
# image: shenxn/protonmail-bridge
# container_name: protonmail-bridge
# volumes:
# - /mnt/2TB/protonmail-bridge:/root
# ports:
# - "1025:25/tcp"
# - "1143:143/tcp"
# restart: unless-stopped
synapse: #matrix server https://hub.docker.com/r/matrixdotorg/synapse/
image: matrixdotorg/synapse:latest
container_name: "synapse"
volumes:
- ${DATA_PATH}/synapse/data:/data
environment:
- VIRTUAL_HOST=${MATRIX_SERVER}
- VIRTUAL_PORT=8008
- SYNAPSE_SERVER_NAME=${MATRIX_SERVER}
- SYNAPSE_REPORT_STATS="yes"
ports:
- ${MATRIX_PORT}:8008/tcp
restart: unless-stopped
riot-web: #matrix frontend https://hub.docker.com/r/bubuntux/riot-web
image: bubuntux/riot-web
container_name: riot_web
ports:
- ${RIOT_PORT}:80
restart: unless-stopped
synapse-postgresql: #matrix database https://hub.docker.com/_/postgres
image: postgres:latest
container_name: synapse-postgresql
hostname: synapse-postgresql
environment:
- POSTGRES_PASSWORD=${SYNAPSE_DB_PASS}
- POSTGRES_USER=${SYNAPSE_DB_USER}
- POSTGRES_DB=synapse
- POSTGRES_INITDB_ARGS=--encoding='UTF8' --lc-collate='C' --lc-ctype='C'
volumes:
- ${DATA_PATH}/synapse/postgres:/var/lib/postgresql/
ports:
- ${SYNAPSE_DB_PORT}:5432/tcp
restart: unless-stopped
aptly:
image: urpylka/aptly:latest
container_name: aptly
ports:
- "89:80"
volumes:
- ${DATA_PATH}/aptly/data:/opt/aptly
logging:
driver: syslog
restart: always
gitlab-redis:
restart: always
image: redis:6.2.6
container_name: gitlab-redis
command:
- --loglevel warning
volumes:
# - gitlab_redis_data:/data:Z
- ${DATA_PATH}/gitlab/redis:/data:Z
gitlab-postgresql:
restart: always
image: sameersbn/postgresql:14-20230628
container_name: gitlab-postgresql
volumes:
# - gitlab_postgresql_data:/var/lib/postgresql:Z
- ${DATA_PATH}/gitlab/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=${GL_DB_USER}
- DB_PASS=${GL_DB_PASS}
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm,btree_gist
gitlab:
restart: always
image: sameersbn/gitlab:16.10.2
container_name: gitlab
depends_on:
- gitlab-redis
- gitlab-postgresql
ports:
- "${GL_HTTP_PORT}:80"
- "${GL_SSH_PORT}:22"
volumes:
# - gitlab_data:/home/git/data:Z
- ${DATA_PATH}/gitlab/data:/home/git/data:Z
healthcheck:
test: ["CMD", "/usr/local/sbin/healthcheck"]
interval: 5m
timeout: 10s
retries: 3
start_period: 5m
environment:
- DEBUG=true
- DB_ADAPTER=postgresql
- DB_HOST=gitlab-postgresql
- DB_PORT=5432
- DB_USER=${GL_DB_USER}
- DB_PASS=${GL_DB_PASS}
- DB_NAME=gitlabhq_production
- REDIS_HOST=gitlab-redis
- REDIS_PORT=6379
- TZ=${TZ}
- GITLAB_TIMEZONE=${GL_TZ}
- GITLAB_HTTPS=true
- SSL_SELF_SIGNED=false
- GITLAB_HOST=${GL_HOST}
- GITLAB_PORT=10080
- GITLAB_SSH_PORT=10022
- GITLAB_SECRETS_DB_KEY_BASE=${GL_DB_KEY}
- GITLAB_SECRETS_SECRET_KEY_BASE=${GL_SECRETS_KEY}
- GITLAB_SECRETS_OTP_KEY_BASE=${GL_OTP_KEY}
- GITLAB_ROOT_PASSWORD=${GL_ROOT_PASS}
- GITLAB_ROOT_EMAIL=${GL_ROOT_EMAIL}
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
- GITLAB_NOTIFY_PUSHER=false
- GITLAB_EMAIL=${SMTP_FROM}
- GITLAB_EMAIL_DISPLAY_NAME=${GL_EMAIL_NAME}
- GITLAB_EMAIL_REPLY_TO=${SMTP_FROM}
- GITLAB_INCOMING_EMAIL_ENABLED=false
- GITLAB_BACKUP_SCHEDULE=daily
- SMTP_ENABLED=true
- SMTP_DOMAIN=${SMTP_SERVER}
- SMTP_HOST=${SMTP_SERVER}
- SMTP_PORT=${SMTP_PORT}
- SMTP_USER=${SMTP_USER}
- SMTP_PASS=${SMTP_PASS}
- SMTP_STARTTLS=true
# - LDAP_ENABLED=true
# - LDAP_LABEL=LDAP
# - LDAP_HOST=${LDAP_SERVER}
# - LDAP_PORT=${LDAP_PORT}
# - LDAP_UID=uid
# - LDAP_METHOD=plain
# - LDAP_VERIFY_SSL=false
# - LDAP_BIND_DN=${LDAP_BIND_DN}
# - LDAP_PASS=${LDAP_BIND_PASS}
# - LDAP_ACTIVE_DIRECTORY=false
# - LDAP_BASE=${LDAP_BASE}
# - LDAP_USER_FILTER=${LDAP_FILTER}
# - LDAP_LOWERCASE_USERNAMES=true
# debian:
# image: sapphic_buildserver
# container_name: sapphic_buildserver
# volumes:
# - ${DATA_PATH}/sapphic_buildserver/config:/app/config
# - ${DATA_PATH}/sapphic_buildserver/output:/app/output
# restart: always
# samba: # samba remote file access https://github.com/deftwork/samba
# image: elswork/samba:latest
# container_name: samba
# environment:
# - TZ=${TZ}
# ports:
# - "139:139"
# - "445:445"
# volumes:
# - ${DATA_PATH}:/mnt/Media
# - ${TEMP_PATH}/transcodecache:/transcodecache
# command: '-u "${UID}:${GID}:${SMB_USER}:${SMB_USER}:${SMB_PASS}" -s "Media:/mnt/Media:rw:${SMB_USER}" -s "TranscodeCache:/transcodecache:rw:${SMB_USER}"'
# restart: unless-stopped