initial commit

This commit is contained in:
2026-02-11 11:17:40 -05:00
commit 50e2363837
72 changed files with 2414 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
---
# Dockge
# Modern docker-compose file manager
# Created by louislam
# ↳ https://github.com/louislam/dockge
services:
dockge:
image: louislam/dockge:latest
container_name: dockge
restart: unless-stopped
networks:
- proxy
# ports:
# - 5001:5001
environment:
PUID: 1000
PGID: 1000
DOCKGE_STACKS_DIR: "/opt/dockge/stacks"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /opt/dockge/stacks:/opt/dockge/stacks
- ./data:/app/data
networks:
proxy:
external: true
# Documentation available at https://github.com/louislam/dockge

View File

@@ -0,0 +1,32 @@
---
# Uptime Kuma
# Web based status monitoring
# Created by Louise Lam
# ↳ https://github.com/louislam/uptime-kuma
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
networks:
- proxy
# ports:
# - 3001:3001
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/uptime-kuma/data:/app/data
networks:
proxy:
external: true
# Documentation available at https://github.com/louislam/uptime-kuma/wiki

View File

@@ -0,0 +1,186 @@
{
"$schema": "https://raw.githubusercontent.com/getarcaneapp/templates/refs/heads/main/schema.json",
"name": "obsidian-logic",
"description": "docker apps for obsidian-logic",
"version": "1.0.0",
"author": "fxequals",
"url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic",
"templates": [
{
"id": "authentik",
"name": "Authentik",
"description": "2FA access & authorization",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/authentik/authentik.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/authentik/",
"tags": ["identity", "2fa", "access"]
},
{
"id": "dozzle",
"name": "Dozzle",
"description": "Docker Logs Web GUI",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/dozzle/dozzle.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/dozzle/",
"tags": ["gui", "logs", "docker"]
},
{
"id": "fresh-rss",
"name": "FreshRSS",
"description": "RSS Feed Aggregation",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fresh-rss/fresh-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fresh-rss/",
"tags": ["rss", "feeds", "aggregiator"]
},
{
"id": "fulltext-rss",
"name": "Full-Text RSS",
"description": "RSS Feed Article Expansion",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/fulltext-rss/fulltext-rss.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/fulltext-rss/",
"tags": ["feeds", "text", "rss"]
},
{
"id": "gitea",
"name": "Gitea",
"description": "Github Alternative",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/gitea/gitea.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/gitea/",
"tags": ["code", "repository", "github"]
},
{
"id": "goaccess",
"name": "GoAccess",
"description": "NGINX Log Visualizer",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/goaccess/goaccess.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/goaccess/",
"tags": ["nginx", "logs", "visualizer"]
},
{
"id": "homepage",
"name": "Homepage",
"description": "Dashboard for Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/homepage/homepage.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/homepage/",
"tags": ["bookmarks", "landing-page", "dashboard"]
},
{
"id": "nginx-proxy-manager",
"name": "NGINX Proxy Manager",
"description": "Reverse Proxy for Web Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/nginx-proxy-manager/nginx-proxy-manager.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/nginx-proxy-manager/",
"tags": ["web", "reverse-proxy", "proxy"]
},
{
"id": "privatebin",
"name": "Privatebin",
"description": "Zero Knowledge Messaging",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/privatebin/privatebin.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/privatebin/",
"tags": ["web", "reverse-proxy", "proxy"]
},
{
"id": "remotely",
"name": "Remotely",
"description": "Remote Access Services",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/remotely/remotely.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/remotely/",
"tags": ["access", "web", "remote"]
},
{
"id": "shlinks",
"name": "Shlinks",
"description": "URL Shortening Service",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/shlinks/shlinks.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/shlinks/",
"tags": ["url", "shortener", "service"]
},
{
"id": "spdf",
"name": "sPDF",
"description": "Various PDF Tools",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/spdf/spdf.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/spdf/",
"tags": ["pdf", "web", "tools"]
},
{
"id": "vaultwarden",
"name": "VaultWarden",
"description": "Password Manager",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/vaultwarden/vaultwarden.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/vaultwarden/",
"tags": ["password", "manager", "bitwarden"]
},
{
"id": "watchtower",
"name": "WatchTower",
"description": "Auto Docker Image Updater",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/watchtower/watchtower.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/watchtower/",
"tags": ["updater", "images", "docker"]
},
{
"id": "wordpress",
"name": "WordPress",
"description": "Hosted CMS Website",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.yaml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/wordpress/wordpress.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/wordpress/",
"tags": ["web", "website", "cms"]
},
{
"id": "romm",
"name": "RomM",
"description": "Web GUI for managing and playing Roms",
"version": "1.0.0",
"author": "fxequals",
"compose_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.yml",
"env_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/raw/branch/main/obsidian-logic/romm/romm.env",
"documentation_url": "https://gitea.mydigitalfix.com/fxequals/docker-compose/src/branch/main/obsidian-logic/romm/",
"tags": ["roms", "gui", "web-based"]
}
]
}

View File

@@ -0,0 +1,3 @@
# Overview
On first run, default user is `arcane` and password is `arcane-admin`

View File

@@ -0,0 +1,2 @@
ENCRYPTION_KEY=
JWT_SECRET=

View File

@@ -0,0 +1,49 @@
---
# Arcane
# Modern Docker Web UI
# Created by arcane
# ↳ https://github.com/getarcaneapp/arcane
services:
arcane:
image: ghcr.io/getarcaneapp/arcane
container_name: arcane
restart: unless-stopped
networks:
- proxy
# ports:
# - 3552:3552
environment:
PUID: 1000
PGID: 1000
APP_URL: https://arcane.mydigitalfix.com
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
JWT_SECRET: ${JWT_SECRET}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- /home/fxequals/docker/arcane/data:/app/data
- /opt/dockge:/opt/dockge # This maps existing Dockge stacks and lets Arcane manage them, otherwise /host/path/to/projects:/app/data/projects
upgrader:
image: ghcr.io/getarcaneapp/arcane:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
entrypoint:
- /app/arcane
command:
- upgrade
- --auto
profiles:
- tools
networks:
proxy:
external: true
# Documentation available at https://getarcane.app/docs

View File

@@ -0,0 +1,13 @@
AUTHENTIK_PORT_HTTP=9000
AUTHENTIK_PORT_HTTPS=9443
PG_PASS=
AUTHENTIK_SECRET_KEY=
AUTHENTIK_ERROR_REPORTING__ENABLED=true
AUTHENTIK_EMAIL__HOST=
AUTHENTIK_EMAIL__PORT=25
AUTHENTIK_EMAIL__USERNAME=
AUTHENTIK_EMAIL__PASSWORD=
AUTHENTIK_EMAIL__USE_TLS=true
AUTHENTIK_EMAIL__USE_SSL=false
AUTHENTIK_EMAIL__TIMEOUT=10
AUTHENTIK_EMAIL__FROM=

View File

@@ -0,0 +1,132 @@
---
# Authentik
# 2FA for web apps
# Created by Authentik Security, LLC
# ↳ https://github.com/goauthentik/authentik
services:
authentik-postgresql:
image: docker.io/library/postgres:12-alpine
container_name: authentik-postgresql
restart: unless-stopped
networks:
- proxy
healthcheck:
test:
- CMD-SHELL
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- /home/fxequals/docker/authentik/database:/var/lib/postgresql/data
environment:
PUID: 1000
PGID: 1000
POSTGRES_PASSWORD: ${PG_PASS:?database password required}
POSTGRES_USER: ${PG_USER:-authentik}
POSTGRES_DB: ${PG_DB:-authentik}
env_file:
- .env
authentik-redis:
image: docker.io/library/redis:alpine
container_name: authentik-redis
command: --save 60 1 --loglevel warning
restart: unless-stopped
networks:
- proxy
healthcheck:
test:
- CMD-SHELL
- redis-cli ping | grep PONG
start_period: 20s
interval: 30s
retries: 5
timeout: 3s
volumes:
- /home/fxequals/docker/authentik/redis:/data
environment:
PUID: 1000
PGID: 1000
authentik-server:
image: ghcr.io/goauthentik/server:latest
command: server
container_name: authentik-server
restart: unless-stopped
networks:
proxy:
ipv4_address: 172.18.1.10
ports:
- 9000:9000 # Remove after putting Authentik behind NGINX
- 9443:9443 # Remove after putting Authentik behind NGINX
environment:
PUID: 1000
PGID: 1000
AUTHENTIK_REDIS__HOST: authentik-redis
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
volumes:
- /home/fxequals/docker/authentik/media:/media
- /home/fxequals/docker/authentik/custom-templates:/templates
env_file:
- .env
depends_on:
- authentik-postgresql
- authentik-redis
authentik-worker:
image: ghcr.io/goauthentik/server:latest
restart: unless-stopped
container_name: authentik-worker
command: worker
networks:
- proxy
environment:
PUID: 1000
PGID: 1000
AUTHENTIK_REDIS__HOST: authentik-redis
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
volumes:
- /home/fxequals/docker/authentik/media:/media
- /home/fxequals/docker/authentik/certs:/certs
- /home/fxequals/docker/authentik/custom-templates:/templates
env_file:
- .env
depends_on:
- authentik-postgresql
- authentik-redis
networks:
proxy:
external: true
# Documentation available at https://docs.goauthentik.io/docs/install-config/install/docker-compose

View File

View File

@@ -0,0 +1,32 @@
---
# Dozzle
# Log viewer for Docker containers
# Created by amir20
# ↳ https://github.com/amir20/dozzle
services:
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
proxy:
external: true
# Documentation available at https://dozzle.dev/

View File

@@ -0,0 +1,35 @@
---
# EmulatorJS
# Retro game emulation in the web browser
# Created by michael-j-green
# ↳ https://github.com/EmulatorJS/EmulatorJS
services:
emulator-js:
image: lscr.io/linuxserver/emulatorjs:latest
container_name: emulator-js
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
# - 3000:3000
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/emulator-js/config:/config
- /home/fxequals/docker/emulator-js/data:/data
- /home/fxequals/docker/emulator-js/
networks:
proxy:
external: true
# Documentation available at https://emulatorjs.org/docs

View File

View File

@@ -0,0 +1,34 @@
---
# FreshRSS
# An RSS aggregator app
# Created by
# ↳ https://github.com/FreshRSS/FreshRSS
services:
fresh-rss:
image: freshrss/freshrss:latest
container_name: fresh-rss
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
CRON_MIN: '13,43' # Specifies Feed Update Time
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/fresh-rss/data:/var/www/FreshRSS/data
- /home/fxequals/docker/fresh-rss/extensions:/var/www/FreshRss/extensions
networks:
proxy:
external: true
# Documentation available at https://freshrss.github.io/FreshRSS/en/admins/01_Index.html

View File

@@ -0,0 +1,32 @@
---
# Full Text RSS
# Converts RSS feed snipits into full text articles
# Created by Five Filters
# ↳ https://github.com/heussd/fivefilters-full-text-rss-docker
services:
full-text-rss:
image: heussd/fivefilters-full-text-rss:latest
container_name: full-text-rss
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/full-text-rss/cache:/var/www/html/cache/rss
networks:
proxy:
external: true
# Documentation available at https://github.com/heussd/fivefilters-full-text-rss-docker

View File

View File

@@ -0,0 +1,33 @@
---
# Gitea
# Open-source Github alternative
# Gitea
# ↳ https://github.com/go-gitea/gitea
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
networks:
- proxy
# ports:
# - 22:22
# - 3000:3000
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/gitea:/data
networks:
proxy:
external: true
# Documentation available at https://docs.gitea.com/

View File

View File

@@ -0,0 +1,34 @@
---
# GoAccess
# Web based log visualizer for NGINX Proxy Manager
# Created by xavierh
# ↳ https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager
services:
goaccess:
image: xavierh/goaccess-for-nginxproxymanager:latest
container_name: goaccess
restart: unless-stopped
networks:
- proxy
# ports:
# - 7880:7880
environment:
PUID: 1000
PGID: 1000
HTML_REFRESH: 5
EXCLUDE_IPS: '172.18.0.1'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/nginx/data/logs:/opt/log
networks:
proxy:
external: true
# Documentation available at https://goaccess.io/man

View File

@@ -0,0 +1,33 @@
---
# Homepage
# A dashboard for your self-hosted environment
# Created by
# ↳ https://github.com/gethomepage/homepage
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
restart: unless-stopped
networks:
- proxy
# ports:
# - 3000:3000
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/homepage/config:/app/config
- /home/fxequals/docker/homepage/images:/app/public/images
networks:
proxy:
external: true
# Documentation available at https://gethomepage.dev/

View File

View File

@@ -0,0 +1,31 @@
---
# IT Tools
# Collection of various IT tools
# Created by CorentinTh
# ↳ https://github.com/CorentinTh/it-tools
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
proxy:
external: true
# Documentation available at https://github.com/CorentinTh/it-tools

View File

@@ -0,0 +1,54 @@
# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "mydigitalfix.com"
pid_file: /data/homeserver.pid
listeners:
- port: 8008
resources:
- compress: false
names:
- client
- federation
tls: false
type: http
x_forwarded: true
database:
name: psycopg2
txn_limit: 10000
args:
user: synapse
password:
database: synapse
host: synapse-db
port: 5432
cp_min: 5
cp_max: 10
log_config: "/data/mydigitalfix.log.config"
media_store_path: /data/media_store
registration_shared_secret:
report_stats: true
macaroon_secret_key:
form_secret:
signing_key_path: "/data/mydigitalfix.signing.key"
trusted_key_servers:
- server_name: "matrix.org"
turn_uris:
- "turn:matrix.mydigitalfix:3478?transport=udp"
- "turn:matrix.mydigitalfix:3478?transport=tcp"
- "turns:matrix.mydigitalfix:3478?transport=udp"
- "turns:matrix.mydigitalfix:3478?transport=tcp"
turn_shared_secret:
turn_user_lifetime: 86400000
turn_allow_guests: False
# vim:ft=yaml

View File

@@ -0,0 +1 @@
POSTGRES_PASSWORD=

View File

@@ -0,0 +1,111 @@
---
# Matrix
# Privacy focused messaging platform
# Created by matrix.org
# ↳ https://github.com/matrix-org
services:
synapse:
image: docker.io/matrixdotorg/synapse:latest
container_name: matrix-synapse
restart: unless-stopped
depends_on:
- synapse_db
networks:
- proxy
environment:
SYNAPSE_CONFIG_PATH: "/data/homeserver.yaml"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- synapse-data:/data
synapse_db:
image: docker.io/postgres:17.5
container_name: matrix-db
restart: unless-stopped
networks:
- proxy
environment:
POSTGRES_USER: "synapse"
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- synapse-db:/var/lib/postgresql/data
nginx:
image: nginx:stable
container_name: matrix-web
restart: "always"
networks:
- proxy
# ports:
# - 80:80
# - 443:443
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- matrix-nginx:/etc/nginx/conf.d
coturn:
image: instrumentisto/coturn:latest
container_name: matrix-coturn
restart: unless-stopped
networks:
- proxy
# ports:
# - 49160-49200:49160-49200/udp
# - 3478:3478
# - 5349:5349
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- matrix-coturn:/etc/coturn
element:
image: vectorim/element-web:latest
container_name: matrix-element
restart: unless-stopped
networks:
- proxy
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- matrix-element:/app
networks:
proxy:
external: true
volumes:
synapse-data:
driver: local
synapse-db:
driver: local
matrix-nginx:
driver: local
matrix-element:
driver: local
matrix-coturn:
driver: local
# Documentation available at https://matrix.org/docs/chat_basics/matrix-for-im/

View File

@@ -0,0 +1,11 @@
use-auth-secret
static-auth-secret=
realm=matrix.mydigitalfix.com
listening-port=3478
tls-listening-port=5349
min-port=49160
max-port=49200
verbose
allow-loopback-peers
cli-password=
external-ip=97.107.140.166

View File

@@ -0,0 +1,35 @@
---
# NGINX Proxy Manager
# A reverse proxy for web apps
# Created by Igor Sysoev
# ↳ https://github.com/nginx/nginx
services:
nginx:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
networks:
- proxy
ports:
- 80:80
- 443:443
# - 81:81
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/nginx/data:/data
- /home/fxequals/docker/nginx/letsencrypt:/etc/letsencrypt
networks:
proxy:
external: true
# Documentation available at https://nginxproxymanager.com/guide/

View File

View File

@@ -0,0 +1,32 @@
---
# PrivateBin
# An opensource Pastebin zero-knowledge server
# Created by Pastebin
# ↳ https://github.com/PrivateBin/PrivateBin
services:
privatebin:
image: privatebin/nginx-fpm-alpine:latest
container_name: privatebin
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/privatebin/data:/srv/data # sudo chown 65534:82 on host folder
networks:
proxy:
external: true
# Documentation available at https://github.com/PrivateBin/docker-nginx-fpm-alpine

View File

@@ -0,0 +1 @@
DOCKERGW=

View File

@@ -0,0 +1,37 @@
---
# Remotely
# Web based remote access and support
# Created by ?
# ↳ https://github.com/immense/Remotely
services:
remotely:
image: immybot/remotely:latest
container_name: remotely
restart: unless-stopped
networks:
- proxy
# ports:
# - 5000:5000
environment:
PUID: 1000
PGID: 1000
ASPNETCORE_ENVIRONMENT: 'Production'
ASPNETCORE_HTTP_PORTS: 5000
Remotely_ApplicationOptions__DbProvider: 'SQLite'
Remotely_ApplicationOptions__DockerGateway: ${DOCKER_GW}
Remotely_ConnectionStrings__SQLite=Data Source: /app/AppData/Remotely.db
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/remotely/data:/app/AppData
networks:
proxy:
external: true
# Documentation available at https://github.com/immense/Remotely

View File

@@ -0,0 +1,129 @@
# This is a generic example of a configuration file
# Rename this file to `config.yml`, copy it to a `config` folder, and mount that folder as per the docker-compose.example.yml
# Only uncomment the lines you want to use/modify, or add new ones where needed
exclude:
# Exclude platforms to be scanned
platforms: [] # ['my_excluded_platform_1', 'my_excluded_platform_2']
# Exclude roms or parts of roms to be scanned
roms:
# Single file games section.
# Will not apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
single_file:
# Exclude all files with certain extensions to be scanned
extensions: [] # ['xml', 'txt']
# Exclude matched file names to be scanned.
# Supports unix filename pattern matching
# Can also exclude files by extension
names: [] # ['info.txt', '._*', '*.nfo']
# Multi files games section
# Will apply to files that are in sub-folders (multi-disc roms, games with updates, DLC, patches, etc.)
multi_file:
# Exclude matched 'folder' names to be scanned (RomM identifies folders as multi file games)
names: [] # ['my_multi_file_game', 'DLC']
# Exclude files within sub-folders.
parts:
# Exclude matched file names to be scanned from multi file roms
# Keep in mind that RomM doesn't scan folders inside multi files games,
# so there is no need to exclude folders from inside of multi files games.
names: [] # ['data.xml', '._*'] # Supports unix filename pattern matching
# Exclude all files with certain extensions to be scanned from multi file roms
extensions: [] # ['xml', 'txt']
system:
# Asociate different platform names to your current file system platform names
# [your custom platform folder name]: [RomM platform name]
# In this example if you have a 'gc' folder, RomM will treat it like the 'ngc' folder and if you have a 'psx' folder, RomM will treat it like the 'ps' folder
platforms: {} # { gc: 'ngc', psx: 'ps' }
# Asociate one platform to it's main version
versions: {} # { naomi: 'arcade' }
# The folder name where your roms are located
filesystem: {} # { roms_folder: 'roms' } For example if your folder structure is /home/user/library/roms_folder
# scan:
# # Metadata priority during scans
# priority:
# # Below are the default priority values used
# metadata: # Top-level metadata source priority
# - "igdb" # IGDB (highest priority)
# - "moby" # MobyGames
# - "ss" # Screenscraper
# - "ra" # RetroAchievements
# - "launchbox" # Launchbox
# - "gamelist" # ES-DE gamelist.xml
# - "hasheous" # Hasheous
# - "flashpoint" # Flashpoint Project
# - "hltb" # HowLongToBeat (lowest priority)
# artwork: # Cover art and screenshots
# - "igdb" # IGDB
# - "moby" # MobyGames
# - "ss" # Screenscraper
# - "ra" # RetroAchievements
# - "launchbox" # Launchbox
# - "gamelist" # ES-DE gamelist.xml
# - "hasheous" # Hasheous
# - "flashpoint" # Flashpoint Project
# - "hltb" # HowLongToBeat
# region: # Used by IGDB and ScreenScraper for regional variants
# - "us"
# - "wor"
# - "ss"
# - "eu"
# - "jp"
# language: # Used by ScreenScraper for descriptions
# - "en"
# - "fr"
# # Media assets to download
# # Only used by Screenscraper and ES-DE gamelist.xml
# media:
# # Used as alternative cover art
# - box2d # Normal cover art (always enabled)
# - box3d # 3D box art
# - miximage # Mixed image of multiple media
# - physical # Disc, cartridge, etc.
# # Added to the screenshots carousel
# - screenshot # Screenshot (enabled by default)
# - title_screen # Title screen
# - fanart # User uploaded artwork
# # Bezel displayed around the emulatorjs window
# - bezel
# # Manual in PDF format
# - manual # Manual (enabled by default)
# # Gameplay video
# - video # Video (warning: large file size)
# # Media used for batocera gamelist.xml export
# - box2d_back # Back cover art
# - logo # Transparent logo
# # Other media assets (might be used in the future)
# - marquee # Custom marquee
EmulatorJS per-core options
emulatorjs:
debug: true # Available options will be logged to the browser console
cache_limit: null # Cache limit per ROM (in bytes)
settings:
parallel_n64: # Use the exact core name
vsync: disabled
snes9x:
snes9x_region: ntsc
default: # These settings apply to all cores
fps: show
controls: # https://emulatorjs.org/docs4devs/control-mapping/
snes9x:
0: # Player 1
0: # A MAPPING FOR EACH BUTTON MUST BE SET!
value: x # Mapping for keyboard
value2: BUTTON_2 # Mapping for connected controller
1:
value:
value2:
1: # Player 2
2: # Player 3
3: # Player 4

View File

@@ -0,0 +1,12 @@
DB_ROOTPWD=
DB_HOST=
DB_NAME=
DB_USER=
DB_PASSWD=
ROMM_AUTH_SECRET_KEY=
RETROACHIEVEMENTS_API_KEY=
STEAMGRIDDB_API_KEY=
IGDB_CLIENT_ID=
IGDB_CLIENT_SECRET=
SCREENSCRAPER_USER=
SCREENSCRAPER_PASSWORD=

View File

@@ -0,0 +1,77 @@
---
# RomM
# Web based rom player and manager
# Created by gantoine
# ↳ https://github.com/rommapp/romm
services:
romm:
image: rommapp/romm:latest
container_name: romm
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
DB_HOST: romm-db
DB_NAME: ${DB_NAME}
DB_USER: ${DB_USER}
DB_PASSWD: ${DB_PASSWORD}
ROMM_AUTH_SECRET_KEY: ${ROMM_AUTH_SECRET_KEY}
SCREENSCRAPER_USER: ${SCREENSCRAPER_USER}
SCREENSCRAPER_PASSWORD: ${SCREENSCRAPER_PASSWORD}
RETROACHIEVEMENTS_API_KEY: ${RETROACHIEVEMENTS_API_KEY}
STEAMGRIDDB_API_KEY: ${STEAMGRIDDB_API_KEY}
IGDB_CLIENT_ID: ${IGDB_CLIENT_ID}
IGDB_CLIENT_SECRET: ${IGDB_CLIENT_SECRET}
HASHEOUS_API_ENABLED: true
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/romm/romm_resources:/romm/resources
- /home/fxequals/docker/romm/romm_redis:/redis-data
- /home/fxequals/docker/romm/roms:/romm/library
- /home/fxequals/docker/romm:/romm/config
- /home/fxequals/docker/romm/assets:/romm/assets
romm-db:
image: mariadb:latest
container_name: romm-db
restart: unless-stopped
networks:
- proxy
environment:
MARIADB_ROOT_PASSWORD: ${DB_ROOTPWD}
MARIADB_DATABASE: ${DB_NAME}
MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 30s
start_interval: 10s
interval: 10s
timeout: 5s
retries: 5
networks:
proxy:
external: true
volumes:
mysql_data:
driver: local
# Documentation available at https://docs.romm.app/latest/

View File

View File

@@ -0,0 +1,61 @@
---
# SearXNG
# Privacy Focused Search Engine
# Created by Searxng
# ↳ https://github.com/searxng/searxng
services:
searxng-server:
image: docker.io/searxng/searxng:latest
container_name: searxng
restart: unless-stopped
networks:
- search
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/searxng/search:/etc/searxng:rw
searxng-redis:
image: docker.io/valkey/valkey:8-alpine
container_name: redis
restart: unless-stopped
command: valkey-server --save 30 1 --loglevel warning
networks:
- search
environment:
PUID: 1000
PGID: 1000
volumes:
- /home/fxequals/docker/searsng/redis:/data
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
search:
external: true
# Documentation available at https://docs.searxng.org/

View File

View File

@@ -0,0 +1,57 @@
---
# Shlink
# Web link URL shortener
# Created by Alejandro Celaya
# ↳ https://github.com/shlinkio/shlink
services:
shlink-server:
image: ghcr.io/shlinkio/shlink:latest
container_name: shlink
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
DEFAULT_DOMAIN: 'links.mydomain.net'
IS_HTTPS_ENABLED: false
GEOLITE_LICENSE_KEY: ${GEO_KEY}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/shlink/data:/data
shlink-web-client:
image: ghcr.io/shlinkio/shlink-web-client:latest
container_name: shlink-web-client
restart: unless-stopped
networks:
- proxy
environment:
PUID: 1000
PGID: 1000
SHLINK_SERVER_URL: 'https://shlinks.mydomain.net'
# SHLINK_SERVER_API_KEY: <--- See Notes
networks:
proxy:
external: true
# Documentation available at https://shlink.io/documentation/install-docker-image/
# Notes
#
# Create and start container
# Run docker exec -it <SHLINK_CONTAINER_ID> shlink api-key:generate
# Copy key and go to Servers - Manage Servers - Click 3 dot menu - Edit
# Paste API key
#

View File

View File

@@ -0,0 +1,32 @@
---
# sPDF
# Self-hosted suite of PDF tools
# Created by Stirling PDF
# ↳ https://github.com/Stirling-Tools/Stirling-PDF
services:
spdf:
image: frooodle/s-pdf:latest
container_name: spdf
restart: unless-stopped
networks:
- proxy
# ports:
# - 8080:8080
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/spdf/configs:/configs
networks:
proxy:
external: true
# Documentation available at https://hub.docker.com/r/stirlingtools/stirling-pdf

View File

@@ -0,0 +1,32 @@
---
# Vaultwarden
# Open-source Bitwarden password manager
# Created by Daniel García
# ↳ https://github.com/dani-garcia/vaultwarden
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
networks:
- proxy
# ports:
# - 80:80
environment:
PUID: 1000
PGID: 1000
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/vaultwarden/data:/data
networks:
proxy:
external: true
# Documentation available at https://github.com/dani-garcia/vaultwarden/wiki

View File

View File

@@ -0,0 +1,8 @@
WATCHTOWER_NOTIFICATION_EMAIL_FROM=
WATCHTOWER_NOTIFICATION_EMAIL_TO=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=25
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=
WATCHTOWER_NOTIFICATION_EMAIL_DELAY=3
WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG=

View File

@@ -0,0 +1,40 @@
---
# Watchtower
# Docker Image Updater & Notifications
# Created by containrrr
# ↳ https://github.com/containrrr/watchtower
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
networks:
- proxy
environment:
PUID: 1000
PGID: 1000
WATCHTOWER_MONITOR_ONLY: true
WATCHTOWER_NOTIFICATIONS: email
WATCHTOWER_NOTIFICATION_EMAIL_FROM: ${WATCHTOWER_NOTIFICATION_EMAIL_FROM}
WATCHTOWER_NOTIFICATION_EMAIL_TO: ${WATCHTOWER_NOTIFICATION_EMAIL_TO}
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER}
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT}
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER}
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: ${WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD}
WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 3
WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG: ${WATCHTOWER_NOTIFICATION_EMAIL_SUBJECTTAG}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
networks:
proxy:
external: true
# Documentation available at https://containrrr.dev/watchtower/

View File

@@ -0,0 +1,3 @@
DB_USER=
DB_PASS=
DB_ROOT=

View File

@@ -0,0 +1,69 @@
---
# WordPress
# Content Management System
# Created by WordPress Foundation
# ↳ https://github.com/WordPress
services:
wordpress:
image: docker.io/bitnami/wordpress:latest
container_name: wordpress-server
restart: unless-stopped
depends_on:
- wordpress-mariadb
networks:
- proxy
# ports:
# - 80:80
# - 443:443
environment:
PUID: 1000
PGID: 1000
WORDPRESS_DATABASE_HOST: 'wordpress-mariadb'
WORDPRESS_DATABASE_USER: ${DB_USER}
WORDPRESS_DATABASE_PASSWORD: ${DB_PASS}
WORDPRESS_DATABASE_PORT_NUMBER: 3306
WORDPRESS_DATABASE_NAME: 'wordpress'
WORDPRESS_USERNAME: ${WP_USER}
WORDPRESS_PASSWORD: ${WP_PASS}
WORDPRESS_EMAIL: ${WP_EMAIL}
WORDPRESS_FIRSTNAME: ${WP_FNAME}
WORDPRESS_LASTNAME: ${WP_LNAME}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/wordpress/data:/bitnami/wordpress # sudo chown 1001 on host folder
wordpress-mariadb:
image: docker.io/bitnami/mariadb:latest
container_name: wordpress-mariadb
restart: unless-stopped
networks:
- proxy
# ports:
# - 3306:3306
environment:
PUID: 1000
PGID: 1000
ALLOW_EMPTY_PASSWORD: no
MARIADB_USER: ${DB_USER}
MARIADB_PASSWORD: ${DB_PASS}
MARIADB_DATABASE: wordpress
MARIADB_ROOT_PASSWORD: ${DB_ROOT}
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /home/fxequals/docker/wordpress/database:/bitnami/mariadb # sudo chown 1001 on host folder
networks:
proxy:
external: true
# Documentation available at https://wordpress.com/support/