Compare commits

...

No commits in common. "main" and "cloud" have entirely different histories.
main ... cloud

24 changed files with 457 additions and 12 deletions

26
.env_template Normal file
View file

@ -0,0 +1,26 @@
#SYSINFO
TZ=
UID=
GID=
#PATHS
DATA_PATH=
#DATADOG
DD_SITE=
DD_API_KEY=
#smtp
SMTP_SERVER=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
SMTP_FROM=
#ldap
LDAP_SERVER=
LDAP_PORT=
LDAP_BASE=
LDAP_FILTER=
LDAP_BIND_DN=
LDAP_BIND_PASS=

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.env
**/.env
**/*.env

View file

@ -1,12 +0,0 @@
# Pogmom's Docker Composes
Docker composes are separated by branches corresponding to the machine they will be run on. Please change branches to view the docker composes.
##Usage:
1. clone desired branch `git clone -b branchname --single-branch https://github.com/pogmommy/Dockers.git && cd Dockers`
2. move or copy .env_template to .env `cp .env_template .env`
3. edit .env as needed to fill in your appropiate values- be sure to check out the projects linked in docker-compose.yml for documentation
4. edit docker-compose.yml to fit your needs
5. build and run containers `sudo docker-compose up -d`
6. follow any other setup needed according to the relevant containers

2
debian/debian.env_template vendored Normal file
View file

@ -0,0 +1,2 @@
#ports
APTLY_PORT=

14
debian/docker-compose.yml vendored Normal file
View file

@ -0,0 +1,14 @@
version: "3.8"
services:
aptly:
image: urpylka/aptly:latest
container_name: aptly
ports:
- "${APTLY_PORT}:80"
volumes:
- ${DATA_PATH}/aptly/data:/opt/aptly
logging:
driver: syslog
restart: always

9
docker_runs/datadog.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
script_root="$( dirname $0 )"
source "${script_root}/../.env"
sudo docker stop datadog-agent
sudo docker rm datadog-agent
sudo docker pull gcr.io/datadoghq/agent:7
sudo docker run -d --cgroupns host --pid host --name datadog-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_SITE="${DD_SITE}" -e DD_API_KEY="${DD_API_KEY}" gcr.io/datadoghq/agent:7

View file

@ -0,0 +1,25 @@
version: "3.8"
volumes:
romm_mysql_data:
romm_resources:
romm_redis_data:
services:
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

View file

@ -0,0 +1,3 @@
#ports
EMUJS_BACKEND_PORT=
EMUJS_PORT=

View file

@ -0,0 +1,43 @@
networks:
forgejo:
external: false
services:
forgejo:
image: codeberg.org/forgejo/forgejo:10
container_name: forgejo
environment:
- USER_UID=${UID}
- USER_GID=${GID}
- FORGEJO__database__DB_TYPE=mysql
- FORGEJO__database__HOST=forgejo-db:3306
- FORGEJO__database__NAME=${FORGEJO_DB_NAME}
- FORGEJO__database__USER=${FORGEJO_DB_USER}
- FORGEJO__database__PASSWD=${FORGEJO_DB_PASS}
restart: always
networks:
- forgejo
volumes:
- ${DATA_PATH}/forgejo/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "${FORGEJO_HTTP_PORT}:3000"
- "${FORGEJO_SSH_PORT}:22"
- "${FORGEJO_SSH_LOCAL_PORT}:22"
depends_on:
- forgejo-db
forgejo-db:
image: mysql:8
container_name: forgejo-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${FORGEJO_DB_ROOT_PASS}
- MYSQL_USER=${FORGEJO_DB_USER}
- MYSQL_PASSWORD=${FORGEJO_DB_PASS}
- MYSQL_DATABASE=${FORGEJO_DB_NAME}
networks:
- forgejo
volumes:
- ${DATA_PATH}/forgejo/mysql:/var/lib/mysql

View file

@ -0,0 +1,12 @@
#FORGEJO
FORGEJO_URL=
FORGEJO_DB_ROOT_PASS=
FORGEJO_DB_NAME=
FORGEJO_DB_USER=
FORGEJO_DB_PASS=
FORGEJO_RUNNER_TOKEN=
FORGEJO_RUNNER_NAME=
#ports
FORGEJO_HTTP_PORT=
FORGEJO_SSH_PORT=
FORGEJO_SSH_LOCAL_PORT=

View file

@ -0,0 +1,22 @@
version: "3.8"
volumes:
libretranslate_api_keys:
libretranslate_models:
services:
libretranslate:
image: libretranslate/libretranslate
container_name: libretranslate
volumes:
- libretranslate_api_keys:/app/db
- libretranslate_models:/home/libretranslate/.local:rw
ports:
- "${LIBRETRANSLATE_PORT}:5000"
environment:
- LT_API_KEYS=true
- LT_REQ_LIMIT=5
- LT_API_KEYS_DB_PATH=/app/db/api
- LT_UPDATE_MODELS=true
restart: unless-stopped

View file

@ -0,0 +1,2 @@
#ports
LIBRETRANSLATE_PORT=

View file

@ -0,0 +1,96 @@
version: "3.8"
networks:
mastodonnet:
name: mastodonnet
services:
mastodon-redis: # data structure server for mastodon https://redis.io/docs/about/
image: redis
container_name: mastodon-redis
networks:
- 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
networks:
- 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
networks:
- 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
networks:
- 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}
- ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=${MASTODON_REC_DET_KEY}
- ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=${MASTODON_REC_DER_SALT}
- ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=${MASTODON_REC_PRIM_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

View file

@ -0,0 +1,15 @@
#mastodon
MASTODON_DB_USER=
MASTODON_DB_PASS=
MASTODON_DOMAIN=
MASTODON_WEB_DOMAIN=
MASTODON_SECRET_KEY_BASE=
MASTODON_OTP_SECRET=
MASTODON_VAPID_PRIVATE_KEY=
MASTODON_VAPID_PUBLIC_KEY=
MASTODON_REC_DET_KEY=
MASTODON_REC_DER_SALT=
MASTODON_REC_PRIM_KEY=
#ports
MASTODON_HTTP_PORT=
MASTODON_HTTPS_PORT=

41
matrix/docker-compose.yml Normal file
View file

@ -0,0 +1,41 @@
version: "3.8"
services:
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
cinny:
image: ajbura/cinny
container_name: cinny
volumes:
- ${DATA_PATH}/cinny/data/config.json:/app/config.json
ports:
- ${CINNY_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

View file

@ -0,0 +1,8 @@
#synapse
MATRIX_SERVER=
SYNAPSE_DB_USER=
SYNAPSE_DB_PASS=
#ports
SYNAPSE_DB_PORT=
MATRIX_PORT=
CINNY_PORT=

View file

@ -0,0 +1,23 @@
version: "3.8"
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
services:
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=${NC_AIO_APACHE_PORT}
- APACHE_IP_BINDING=0.0.0.0
- NEXTCLOUD_DATADIR=${DATA_PATH}/nextcloud-aio/nextcloud
- NEXTCLOUD_MOUNT=${DATA_PATH}/local/
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config:rw
- '/var/run/docker.sock:/var/run/docker.sock:ro'
ports:
- ${NC_AIO_PORT}:8080
restart: always

View file

@ -0,0 +1,3 @@
#ports
NC_AIO_PORT=
NC_AIO_APACHE_PORT=

View file

@ -0,0 +1,56 @@
version: "2"
services:
pixelfed-app:
image: zknt/pixelfed
container_name: pixelfed-app
restart: unless-stopped
env_file:
- ${DATA_PATH}/pixelfed/env
volumes:
- "${DATA_PATH}/pixelfed/storage:/var/www/storage"
- "${DATA_PATH}/pixelfed/env:/var/www/.env"
ports:
- ${PIXELFED_PORT}:80
depends_on:
- pixelfed-db
- pixelfed-redis
pixelfed-worker:
image: zknt/pixelfed
container_name: pixelfed-worker
restart: unless-stopped
env_file:
- ${DATA_PATH}/pixelfed/env
volumes:
- "${DATA_PATH}/pixelfed/storage:/var/www/storage"
- "${DATA_PATH}/pixelfed/env:/var/www/.env"
entrypoint: /worker-entrypoint.sh
depends_on:
- pixelfed-db
- pixelfed-redis
- pixelfed-app
healthcheck:
test: php artisan horizon:status | grep running
interval: 60s
timeout: 5s
retries: 1
pixelfed-db:
image: zknt/mariadb
container_name: pixelfed-db
restart: unless-stopped
env_file:
- ${DATA_PATH}/pixelfed/env
environment:
- MYSQL_ROOT_PASSWORD=${PIXELFED_MYSQL_PASS}
volumes:
- "${DATA_PATH}/pixelfed/db:/var/lib/mysql"
pixelfed-redis:
image: zknt/redis
container_name: pixelfed-redis
restart: unless-stopped
volumes:
- "${DATA_PATH}/pixelfed/redis:/data"

View file

@ -0,0 +1,5 @@
#pixelfed
#PIXELFED_MYSQL_PASS=
PIXELFED_MYSQL_PASS=
#ports
PIXELFED_PORT=

View file

@ -0,0 +1,11 @@
version: "3.8"
services:
protonmail-bridge:
container_name: protonmail-bridge
volumes:
- ${DATA_PATH}/protonmail-bridge:/root
network_mode: host
restart: unless-stopped
image: ganeshlab/protonmail-bridge

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,33 @@
version: "3.8"
services:
resume-nginx:
image: nginx
container_name: resume-nginx
volumes:
- ${DATA_PATH}/webhosting/resume/src:/usr/share/nginx/html
- ${DATA_PATH}/webhosting/resume/default.conf:/etc/nginx/conf.d/default.conf
ports:
- ${RESUME_NGINX_PORT}:80
restart: unless-stopped
pogmom-suite-nginx:
image: nginx
container_name: pogmom-suite-nginx
volumes:
- ${DATA_PATH}/webhosting/pogmom-suite/pogmom-suite:/usr/share/nginx/html
- ${DATA_PATH}/webhosting/pogmom-suite/default.conf:/etc/nginx/conf.d/default.conf
ports:
- ${POGMOM_SUITE_NGINX_PORT}:80
restart: unless-stopped
pogmomme-nginx:
image: nginx
container_name: pogmomme-nginx
volumes:
- ${DATA_PATH}/webhosting/pogmomme/pogmomme:/usr/share/nginx/html
- ${DATA_PATH}/webhosting/pogmomme/default.conf:/etc/nginx/conf.d/default.conf
ports:
- ${POGMOM_NGINX_PORT}:80
restart: unless-stopped

View file

@ -0,0 +1,4 @@
#ports
RESUME_NGINX_PORT=
POGMOM_SUITE_NGINX_PORT=
POGMOM_NGINX_PORT=