├── traefik ├── acme.json ├── users.txt ├── sample.env ├── conf │ ├── tls.yml │ └── test.yml └── README.md ├── dev ├── plugins │ └── .gitkeep ├── themes │ └── .gitkeep ├── uploads │ └── .gitkeep ├── sample.env └── wpcli ├── nginx ├── html │ ├── css │ │ └── .gitkeep │ └── js │ │ ├── .gitkeep │ │ └── script.js ├── sample.env ├── entrypoint.sh ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── odoo ├── .gitignore ├── odoo.conf ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── README.md ├── dasherr ├── html │ ├── css │ │ └── .gitkeep │ └── js │ │ ├── .gitkeep │ │ └── script.js ├── sample.env ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── firefly ├── croni.env ├── crontab │ └── dockeruser ├── docker-compose.caddy.yml └── docker-compose.traefik.yml ├── pastebin ├── .gitignore ├── sample.env ├── docker-compose.default.yml ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md ├── docker-compose.traefik.yml └── Dockerfile ├── mysteryshack ├── .gitignore ├── sample.env ├── docker-compose.default.yml ├── docker-compose.yml ├── docker-compose.caddy.yml ├── Dockerfile └── config.ini ├── wordpressx2 ├── wp1 │ ├── plugins │ │ └── .gitkeep │ ├── themes │ │ └── .gitkeep │ ├── uploads │ │ └── .gitkeep │ └── sample.env ├── wp2 │ ├── plugins │ │ └── .gitkeep │ ├── themes │ │ └── .gitkeep │ ├── uploads │ │ └── .gitkeep │ └── sample.env └── phpmyadmin │ ├── sample.env │ └── docker-compose.yml ├── gotify └── gotify.env ├── ntfy ├── sample.env ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md ├── docker-compose.traefik.yml └── Dockerfile ├── dim ├── sample.env ├── ~ │ └── .cache │ │ └── zsh │ │ └── compcache │ │ └── docker_hide_legacy_commands ├── config │ ├── dim.db-shm │ ├── dim.db-wal │ └── config.toml ├── docker-compose.default.yml ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── dozzle ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── gitea ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── logseq ├── sample.env ├── docker-compose.yml ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── README.md ├── memos ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── metube ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml └── docker-compose.traefik.yml ├── sftpgo ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── webdav ├── sample.env ├── share │ └── ian-parker-TLcLDigmTKE-unsplash.webp ├── docker-compose.caddy.yml ├── docker-compose.yml ├── entrypoint.sh ├── README.md ├── docker-compose.traefik.yml └── webdav.conf ├── ghost ├── sample.env ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── homepage ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── invidious ├── sample.env ├── docker-compose.caddy.yml └── docker-compose.traefik.yml ├── ittools ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── jellyfin ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── laverna ├── sample.env ├── entrypoint.sh ├── docker-compose.yml ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── notemark ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── docker-compose.yml ├── portainer ├── sample.env ├── docker-compose.override.yml ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml ├── docker-compose.yml └── README.md ├── rabbitmq ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── registry ├── sample.env ├── docker-compose.caddy.yml └── docker-compose.traefik.yml ├── searxng ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── uptime-kuma ├── sample.env ├── docker-compose.yml ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── README.md ├── yacht ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── dockge ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml ├── docker-compose.yml └── README.md ├── shaarli ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── vaultwarden ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── kanboard ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── radicale ├── sample.env ├── requirements.txt ├── docker-compose.default.yml ├── docker-compose.caddy.yml ├── docker-compose.yml └── docker-compose.traefik.yml ├── cloudbeaver ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── .gitignore ├── portainer+traefik ├── jellyfin │ ├── sample.env │ ├── README.md │ └── docker-compose.yml └── jellystat │ ├── sample.env │ └── README.md ├── wallabag ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── filebrowser ├── sample.env ├── filebrowser.json ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── flame ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── facturascripts ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml └── docker-compose.traefik.yml ├── freshrss ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.postgres.yml ├── README.md └── docker-compose.traefik.yml ├── socks5 ├── sample.env ├── docker-compose.yml └── README.md ├── trilium ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── grafana-influx-telegraf ├── env.influxdb ├── env.grafana ├── docker-compose.caddy.yml ├── sample.env ├── docker-compose.traefik.yml └── README.md ├── crowdsec └── config │ ├── acquis.yml │ ├── acquis │ └── ssh.yaml │ └── mywhitelists.yml ├── silverbullet ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml └── README.md ├── README.md ├── mtproxy ├── README.md ├── sample.env └── docker-compose.yml ├── picoshare ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── .gitmodules ├── dnote ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── umami ├── sample.env ├── docker-compose.caddy.yml └── docker-compose.traefik.yml ├── bookstack ├── docker-compose.default.yml ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── navidrome ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── openobserve ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── huginn ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── nextcloud ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── README.md ├── cells ├── sample.env └── README.md ├── photoprism ├── docker-compose.default.yml ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── chevereto ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── hedgedoc └── sample.env ├── unbound ├── conf │ └── a-records.conf └── docker-compose.yml ├── plausible ├── plausible-conf.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── semaphore ├── docker-compose.caddy.yml ├── sample.env ├── docker-compose.yml └── docker-compose.traefik.yml ├── zincsearch ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── docker-compose.traefik.yml ├── README.md └── sample.http ├── zincobserve ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── focalboard ├── docker-compose.caddy.yml ├── sample.env ├── config.json ├── docker-compose.traefik.yml └── docker-compose.yml ├── postgres ├── sample.env ├── docker-compose.caddy.yml ├── README.md ├── docker-compose.traefik.yml └── docker-compose.yml ├── rustfs └── sample.env ├── atuin ├── sample.env ├── docker-compose.caddy.yml ├── README.md ├── docker-compose.traefik.yml └── docker-compose.yml ├── flatnotes ├── sample.env ├── docker-compose.caddy.yml ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── ferrishare ├── README.md └── docker-compose.yml ├── wikijs ├── sample.env ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── caddy ├── README.md └── docker-compose.yml ├── wordpress ├── wpcli └── force-backup ├── planka ├── docker-compose.caddy.yml ├── sample.env └── docker-compose.traefik.yml ├── snibox ├── docker-compose.caddy.yml ├── sample.env ├── docker-compose.traefik.yml └── README.md ├── audiobookshelf ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── docker-compose.yml ├── homer ├── docker-compose.caddy.yml ├── docker-compose.yml └── docker-compose.traefik.yml ├── miniflux ├── sample.env ├── docker-compose.caddy.yml ├── README.md ├── docker-compose.yml └── docker-compose.traefik.yml ├── nitter ├── docker-compose.caddy.yml └── docker-compose.traefik.yml ├── codimd ├── docker-compose.caddy.yml ├── sample.env ├── docker-compose.yml ├── README.md └── docker-compose.traefik.yml ├── immich ├── docker-compose.caddy.yml ├── README.md └── docker-compose.traefik.yml ├── wger ├── docker-compose.caddy.yml ├── docker-compose.traefik.yml └── nginx.conf ├── simple-torrent ├── docker-compose.caddy.yml └── docker-compose.yml ├── tick └── tick.env ├── vector ├── README.md ├── docker-compose.yml └── sample.vector.toml ├── vscode └── README.md ├── .github └── workflows │ └── autoassign.yml ├── readeck └── docker-compose.yml ├── whisper └── docker-compose.yml ├── kavita └── docker-compose.yml ├── couchdb └── docker-compose.yml ├── standardnotes └── Dockerfile ├── dagu └── docker-compose.yml ├── weaviate └── docker-compose.yml └── dingpdf └── docker-compose.yml /traefik/acme.json: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /traefik/users.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dev/plugins/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dev/themes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dev/uploads/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nginx/html/css/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nginx/html/js/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /odoo/.gitignore: -------------------------------------------------------------------------------- 1 | ~/ 2 | -------------------------------------------------------------------------------- /dasherr/html/css/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dasherr/html/js/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /firefly/croni.env: -------------------------------------------------------------------------------- 1 | TOKEN= 2 | -------------------------------------------------------------------------------- /pastebin/.gitignore: -------------------------------------------------------------------------------- 1 | db 2 | -------------------------------------------------------------------------------- /mysteryshack/.gitignore: -------------------------------------------------------------------------------- 1 | data 2 | -------------------------------------------------------------------------------- /wordpressx2/wp1/plugins/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wordpressx2/wp1/themes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wordpressx2/wp1/uploads/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wordpressx2/wp2/plugins/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wordpressx2/wp2/themes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /wordpressx2/wp2/uploads/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gotify/gotify.env: -------------------------------------------------------------------------------- 1 | TZ=Europe/Madrid 2 | -------------------------------------------------------------------------------- /ntfy/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=ntfy.tuservidor.es 2 | -------------------------------------------------------------------------------- /dasherr/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=nginx.tuservidor.es 2 | -------------------------------------------------------------------------------- /dim/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=dim.tuservidor.es 2 | 3 | -------------------------------------------------------------------------------- /dozzle/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=dozzle.tuservidor.es 2 | -------------------------------------------------------------------------------- /gitea/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=gitea.tuservidor.es 2 | -------------------------------------------------------------------------------- /logseq/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=logseq.tuservidor.es 2 | -------------------------------------------------------------------------------- /memos/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=memos.tuservidor.es 2 | -------------------------------------------------------------------------------- /metube/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=metube.tuservidor.es 2 | -------------------------------------------------------------------------------- /nginx/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=nginx.tuservidor.es 2 | -------------------------------------------------------------------------------- /sftpgo/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=sftpgo.tuservidor.es 2 | -------------------------------------------------------------------------------- /webdav/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=webdav.tuservidor.es 2 | -------------------------------------------------------------------------------- /ghost/sample.env: -------------------------------------------------------------------------------- 1 | url=https://ghost.tuservidor.es 2 | -------------------------------------------------------------------------------- /homepage/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=homepage.tuservidor.es 2 | -------------------------------------------------------------------------------- /invidious/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=invidious.tuservidor.es 2 | -------------------------------------------------------------------------------- /ittools/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=ittools.tuservidor.es 2 | -------------------------------------------------------------------------------- /jellyfin/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=jellyfin.tuservidor.es 2 | -------------------------------------------------------------------------------- /laverna/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=laverna.tuservidor.es 2 | -------------------------------------------------------------------------------- /notemark/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=notemark.tuservidor.es 2 | -------------------------------------------------------------------------------- /portainer/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=portainer.tuservidor.es 2 | -------------------------------------------------------------------------------- /rabbitmq/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://mq.tuservidor.es 2 | -------------------------------------------------------------------------------- /registry/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://tu.servidor.es 2 | -------------------------------------------------------------------------------- /searxng/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=searxng.tuservidor.es 2 | -------------------------------------------------------------------------------- /traefik/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=traefik.tuservidor.es 2 | -------------------------------------------------------------------------------- /uptime-kuma/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=uptime.tuservidor.es 2 | -------------------------------------------------------------------------------- /yacht/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://yacht.tuservidor.es 2 | -------------------------------------------------------------------------------- /dockge/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://dockge.tuservidor.es 2 | -------------------------------------------------------------------------------- /shaarli/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://shaarli.tuservidor.es 2 | -------------------------------------------------------------------------------- /vaultwarden/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=vaultwarden.tuservidor.es 2 | -------------------------------------------------------------------------------- /kanboard/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://kanboard.tuservidor.es 2 | -------------------------------------------------------------------------------- /portainer/docker-compose.override.yml: -------------------------------------------------------------------------------- 1 | docker-compose.traefik.yml -------------------------------------------------------------------------------- /radicale/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://radicale.tuservidor.es 2 | -------------------------------------------------------------------------------- /cloudbeaver/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://cloudbeaver.tuservidor.es 2 | -------------------------------------------------------------------------------- /wordpressx2/phpmyadmin/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=myadmin.tuservidor.es 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | filebrowser/filebrowser.db 3 | srv/* 4 | htpasswd 5 | -------------------------------------------------------------------------------- /portainer+traefik/jellyfin/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=jellyfin.tuservidor.es 2 | -------------------------------------------------------------------------------- /portainer+traefik/jellystat/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=jellyfin.tuservidor.es 2 | -------------------------------------------------------------------------------- /wallabag/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=wallabag.tuservidor.es 2 | NAME=Tu Servidor Linux 3 | -------------------------------------------------------------------------------- /filebrowser/sample.env: -------------------------------------------------------------------------------- 1 | UID=1000 2 | GID=1000 3 | FQDN=filebrowser.tuservidor.es 4 | -------------------------------------------------------------------------------- /flame/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=flame.tuservidor.es 2 | PASSWORD=contraseña-secreta 3 | 4 | -------------------------------------------------------------------------------- /laverna/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | /opt/nginx/sbin/nginx -g "daemon off;" 3 | -------------------------------------------------------------------------------- /facturascripts/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=fs.tuservidor.es 2 | MYSQL_ROOT_PASSWORD=mypassword 3 | -------------------------------------------------------------------------------- /freshrss/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=nginx.tuservidor.es 2 | CRON_MIN=4,34 3 | TZ=Europe/Madrid 4 | -------------------------------------------------------------------------------- /dim/~/.cache/zsh/compcache/docker_hide_legacy_commands: -------------------------------------------------------------------------------- 1 | _docker_hide_legacy_commands='' 2 | -------------------------------------------------------------------------------- /firefly/crontab/dockeruser: -------------------------------------------------------------------------------- 1 | */5 * * * * curl http://fireflyiii:8080/api/v1/cron/${TOKEN} 2 | -------------------------------------------------------------------------------- /odoo/odoo.conf: -------------------------------------------------------------------------------- 1 | [options] 2 | addons_path = /mnt/extra-addons 3 | data_dir = /var/lib/odoo 4 | -------------------------------------------------------------------------------- /pastebin/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=pastebin.tuservidor.es 2 | LOCAL_UID=1000 3 | LOCAL_GID=1000 4 | -------------------------------------------------------------------------------- /socks5/sample.env: -------------------------------------------------------------------------------- 1 | PROXY_USER=someuser 2 | PROXY_PASSWORD=somepass 3 | PROXY_PORT=8388 4 | -------------------------------------------------------------------------------- /dim/config/dim.db-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/self-hosted/HEAD/dim/config/dim.db-shm -------------------------------------------------------------------------------- /dim/config/dim.db-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/self-hosted/HEAD/dim/config/dim.db-wal -------------------------------------------------------------------------------- /mysteryshack/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=mysteryshack.tuservidor.es 2 | LOCAL_UID=1000 3 | LOCAL_GID=1000 4 | -------------------------------------------------------------------------------- /odoo/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=odoo.tuservidor.es 2 | POSTGRES_USER=odoo 3 | POSTGRES_PASSWORD=odoo 4 | 5 | 6 | -------------------------------------------------------------------------------- /trilium/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://trilium.tuservidor.es 2 | TRILIUM_DATA_DIR=/home/node/trilium-data 3 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/env.influxdb: -------------------------------------------------------------------------------- 1 | INFLUXDB_DATA_ENGINE=tsm1 2 | INFLUXDB_REPORTING_DISABLED=false 3 | -------------------------------------------------------------------------------- /crowdsec/config/acquis.yml: -------------------------------------------------------------------------------- 1 | filenames: 2 | - /var/log/traefik/access.log 3 | labels: 4 | type: traefik 5 | -------------------------------------------------------------------------------- /radicale/requirements.txt: -------------------------------------------------------------------------------- 1 | radicale==3.1.7 2 | radicale-imap 3 | git+https://github.com/Unrud/RadicaleInfCloud 4 | -------------------------------------------------------------------------------- /silverbullet/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://silverbullet.tuservidor.es 2 | USERNAME=usuario 3 | PASSWORD=contraseña 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Self Hosted 2 | 3 | Host your own services 4 | 5 | ## Reverse Proxy 6 | 7 | * Traefik 8 | * Caddy 9 | -------------------------------------------------------------------------------- /dim/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | dim: 5 | ports: 6 | - "8000:8000" 7 | -------------------------------------------------------------------------------- /mtproxy/README.md: -------------------------------------------------------------------------------- 1 | Para generar un nuevo secreto 2 | 3 | ```bash 4 | head -c 16 /dev/urandom | xdd -ps 5 | ``` 6 | -------------------------------------------------------------------------------- /picoshare/sample.env: -------------------------------------------------------------------------------- 1 | PORT=4001 2 | PS_SHARED_SECRET=supersecretpassword 3 | FQDN=https://picoshare.tuservidor.es 4 | -------------------------------------------------------------------------------- /portainer+traefik/jellyfin/README.md: -------------------------------------------------------------------------------- 1 | # Servidor jellyfin 2 | 3 | # Instalación desde Portainer 4 | 5 | Puedes ha 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dasherr/Dasherr"] 2 | path = dasherr/Dasherr 3 | url = https://github.com/erohtar/Dasherr.git 4 | -------------------------------------------------------------------------------- /dnote/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=dnote.tuservidor.es 2 | POSTGRES_USER=dnote 3 | POSTGRES_PASSWORD=dnote 4 | POSTGRES_DB=dnote 5 | -------------------------------------------------------------------------------- /pastebin/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | pastebin: 4 | ports: 5 | - 8081:8081 6 | -------------------------------------------------------------------------------- /portainer+traefik/jellystat/README.md: -------------------------------------------------------------------------------- 1 | # Servidor jellyfin 2 | 3 | # Instalación desde Portainer 4 | 5 | Puedes ha 6 | -------------------------------------------------------------------------------- /umami/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=umami.tuservidor.es 2 | POSTGRES_DB=umami 3 | POSTGRES_USER=umami 4 | POSTGRES_PASSWORD=umami 5 | -------------------------------------------------------------------------------- /bookstack/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | bookstack: 5 | ports: 6 | - 8080:80 7 | -------------------------------------------------------------------------------- /crowdsec/config/acquis/ssh.yaml: -------------------------------------------------------------------------------- 1 | filenames: 2 | - /logs/auth.log 3 | - /logs/syslog 4 | labels: 5 | type: syslog 6 | -------------------------------------------------------------------------------- /navidrome/sample.env: -------------------------------------------------------------------------------- 1 | ND_SCANINTERVAL=24h 2 | ND_LOGLEVEL=info 3 | ND_SESSIONTIMEOUT=24h 4 | FQDN=navidrome.tuservidor.es 5 | -------------------------------------------------------------------------------- /radicale/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | radicale: 5 | ports: 6 | - 5232:5232 7 | -------------------------------------------------------------------------------- /mysteryshack/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | mysteryshack: 5 | ports: 6 | - 6767:6767 7 | -------------------------------------------------------------------------------- /openobserve/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=openobserve.tuservidor.es 2 | ZO_ROOT_USER_EMAIL=tu@correo.es 3 | ZO_ROOT_USER_PASSWORD=contraseña 4 | -------------------------------------------------------------------------------- /wordpressx2/wp1/sample.env: -------------------------------------------------------------------------------- 1 | DB_USER=wp1 2 | DB_PASSWORD=wp1 3 | DB_NAME=wp1 4 | DB_ROOT_PASSWORD=wp1 5 | FQDN=wp1.tuservidor.es 6 | -------------------------------------------------------------------------------- /wordpressx2/wp2/sample.env: -------------------------------------------------------------------------------- 1 | DB_USER=wp2 2 | DB_PASSWORD=wp2 3 | DB_NAME=wp2 4 | DB_ROOT_PASSWORD=wp2 5 | FQDN=wp2.tuservidor.es 6 | -------------------------------------------------------------------------------- /huginn/sample.env: -------------------------------------------------------------------------------- 1 | DB_NAME=huginn 2 | DB_USER=huginn 3 | DB_PASSWORD=huginn 4 | DB_ROOT_PASSWORD=huginn 5 | FQDN=huginn.tuservidor.es 6 | -------------------------------------------------------------------------------- /nextcloud/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=nextcloud.tuservidor.es 2 | POSTGRES_PASSWORD=tucontraseña 3 | POSTGRES_DB=nextcloud 4 | POSTGRES_USER=nextcloud 5 | 6 | -------------------------------------------------------------------------------- /cells/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=cells.tusitio.es 2 | MYSQL_ROOT_PASSWORD=P@ssw0rd 3 | MYSQL_DATABASE=cells 4 | MYSQL_USER=pydio 5 | MYSQL_PASSWORD=P@ssw0rd 6 | -------------------------------------------------------------------------------- /mtproxy/sample.env: -------------------------------------------------------------------------------- 1 | SECRET=5f8cee25790f122f05fd4 2 | WORKERS=1 3 | MTPROTO_REPO_URL=https://github.com/TelegramMessenger/MTProxy 4 | TZ=Europe/Madrid 5 | -------------------------------------------------------------------------------- /webdav/share/ian-parker-TLcLDigmTKE-unsplash.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atareao/self-hosted/HEAD/webdav/share/ian-parker-TLcLDigmTKE-unsplash.webp -------------------------------------------------------------------------------- /ittools/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | ittools: 3 | labels: 4 | - caddy="${FQDN}" 5 | - caddy.reverse_proxy="{{upstreams 80}}" 6 | -------------------------------------------------------------------------------- /notemark/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | notemark: 3 | labels: 4 | - caddy="${FQDN}" 5 | - caddy.reverse_proxy="{{upstreams 4533}}" 6 | -------------------------------------------------------------------------------- /ntfy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | ntfy: 5 | build: . 6 | image: atareao/ntfy:v1.0 7 | volumes: 8 | - ./etc:/etc/ntfy 9 | -------------------------------------------------------------------------------- /photoprism/docker-compose.default.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | 5 | photoprism: 6 | ports: 7 | - 2342:2342 # [local port]:[container port] 8 | -------------------------------------------------------------------------------- /dev/sample.env: -------------------------------------------------------------------------------- 1 | DB_USER=dev 2 | DB_PASSWORD=dev 3 | DB_NAME=dev 4 | DB_ROOT_PASSWORD=dev 5 | FQDN_WORDPRESS=dev.tuservidor.es 6 | FQDN_PHPMYADMIN=myadmin.tuservidor.es 7 | -------------------------------------------------------------------------------- /filebrowser/filebrowser.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 80, 3 | "baseURL": "", 4 | "address": "", 5 | "log": "stdout", 6 | "database": "/database.db", 7 | "root": "/srv" 8 | } -------------------------------------------------------------------------------- /gitea/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | gitea: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 3000}}" 8 | -------------------------------------------------------------------------------- /nextcloud/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | web: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 80}}" 8 | -------------------------------------------------------------------------------- /nginx/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mediaowner=$(ls -ld /html | awk '{print $3}') 3 | echo "Current /html owner is $mediaowner" 4 | /opt/nginx/sbin/nginx -g "daemon off;" 5 | -------------------------------------------------------------------------------- /odoo/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | odoo: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 8069}}" 8 | -------------------------------------------------------------------------------- /chevereto/sample.env: -------------------------------------------------------------------------------- 1 | DB_USER=chevereto_user 2 | DB_PASSWORD=chevereto_password 3 | DB_NAME=cheveretor 4 | DB_ROOT_PASSWORD=chevereto_root_password 5 | FQDN=chevereto.tuservidor.es 6 | -------------------------------------------------------------------------------- /hedgedoc/sample.env: -------------------------------------------------------------------------------- 1 | MYSQL_ROOT_PASSWORD=XXXXXXXXXXXXXXXXXXXX 2 | MYSQL_DATABASE=hedgedoc 3 | MYSQL_USER=hedgedoc 4 | MYSQL_PASSWORD=XXXXXXXXXXXXXXXXXXXX 5 | FQDN=doc.tuservidor.es 6 | -------------------------------------------------------------------------------- /registry/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | registry-ui: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 80}}" 8 | -------------------------------------------------------------------------------- /unbound/conf/a-records.conf: -------------------------------------------------------------------------------- 1 | local-zone: "uno.sitio.corp" redirect 2 | local-data: "uno.sitio.corp 86400 IN A 192.168.1.21" 3 | local-data: "nas.sitio.corp 86400 IN A 192.168.1.5" 4 | -------------------------------------------------------------------------------- /bookstack/sample.env: -------------------------------------------------------------------------------- 1 | PUID=1000 2 | PGID=1000 3 | FQDN=https://bookstack.tuservidor.es 4 | DB_USER=bookstack 5 | DB_PASS=contraseña 6 | DB_DATABASE=bookstackapp 7 | TZ=Europe/Madrid 8 | -------------------------------------------------------------------------------- /plausible/plausible-conf.env: -------------------------------------------------------------------------------- 1 | ADMIN_USER_EMAIL= 2 | ADMIN_USER_NAME= 3 | ADMIN_USER_PWD= 4 | BASE_URL=https://plausible.tuservidor.es 5 | SECRET_KEY_BASE= 6 | DISABLE_REGISTRATION=true 7 | -------------------------------------------------------------------------------- /semaphore/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | semaphore: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 3000}}" 8 | -------------------------------------------------------------------------------- /sftpgo/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | sftpgo: 5 | labels: 6 | caddy_0: "${FQDN_0}" 7 | caddy_0.reverse_proxy: "{{upstreams 8080}}" 8 | -------------------------------------------------------------------------------- /zincsearch/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=zinc.tuservidor.es 2 | DATA_PATH=/data 3 | ZINC_FIRST_ADMIN_USER=admin 4 | ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123 5 | TOKEN=YWRtaW46Q29tcGxleHBhc3MjMTIz 6 | -------------------------------------------------------------------------------- /openobserve/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | openobserve: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 5080}}" 8 | -------------------------------------------------------------------------------- /silverbullet/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | silverbullet: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 3000}}" 8 | -------------------------------------------------------------------------------- /plausible/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | services: 3 | plausible: 4 | labels: 5 | - caddy="plausible.tuservidor.com" 6 | - caddy.reverse_proxy="{{upstreams 8000}}" 7 | -------------------------------------------------------------------------------- /zincobserve/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=zincobserve.tuservidor.es 2 | DATA_PATH=/data 3 | ZINC_FIRST_ADMIN_USER=admin 4 | ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123 5 | TOKEN=YWRtaW46Q29tcGxleHBhc3MjMTIz 6 | -------------------------------------------------------------------------------- /focalboard/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | focalboard: 6 | labels: 7 | - caddy="${FQDN}" 8 | - caddy.reverse_proxy="{{upstreams $VIRTUAL_PORT}}" 9 | -------------------------------------------------------------------------------- /postgres/sample.env: -------------------------------------------------------------------------------- 1 | POSTGRES_USER=root 2 | POSTGRES_PASSWORD=root 3 | POSTGRES_DB=test_db 4 | PGADMIN_DEFAULT_EMAIL=admin@admin.es 5 | PGADMIN_DEFAULT_PASSWORD=admin 6 | FQDN=pgadmin.tuservidor.es 7 | -------------------------------------------------------------------------------- /crowdsec/config/mywhitelists.yml: -------------------------------------------------------------------------------- 1 | name: crowdsecurity/whitelists 2 | description: "Whitelist events from my ip addresses" 3 | whitelist: 4 | reason: "my ip ranges" 5 | ip: 6 | - "XXX.XXX.XXX.XXX" 7 | -------------------------------------------------------------------------------- /rustfs/sample.env: -------------------------------------------------------------------------------- 1 | FQDN1=s3.tuservidor.es 2 | FQDN2=s3admin.tuservidor.es 3 | RUSTFS_ACCESS_KEY='XXXXXXXXXXXXXXXXXXXXXX' 4 | RUSTFS_SECRET_KEY='XXXXXXXXXXXXXXXXXXXXXXXXX' 5 | RUSTFS_CONSOLE_ENABLE=true 6 | -------------------------------------------------------------------------------- /logseq/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | logseq: 5 | image: ghcr.io/logseq/logseq-webapp:latest 6 | container_name: logseq 7 | init: true 8 | restart: unless-stopped 9 | -------------------------------------------------------------------------------- /atuin/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://atuin.tuservidor.es 2 | ATUIN_HOST="0.0.0.0" 3 | ATUIN_PORT=8888 4 | ATUIN_OPEN_REGISTRATION=true 5 | POSTGRES_USER=atuin 6 | POSTGRES_PASSWORD=atuin_password 7 | POSTGRES_DB=atuin 8 | -------------------------------------------------------------------------------- /cells/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/cells 6 | cp sample.env .env 7 | ``` 8 | 9 | In `.env` change variables as you need 10 | -------------------------------------------------------------------------------- /flatnotes/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://dnote.tuservidor.es 2 | FLATNOTES_AUTH_TYPE="password" 3 | FLATNOTES_USERNAME="user" 4 | FLATNOTES_PASSWORD="changeMe!" 5 | FLATNOTES_SECRET_KEY="aLongRandomSeriesOfCharacters" 6 | -------------------------------------------------------------------------------- /focalboard/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=focalboard.tuservidor.es 2 | VIRTUAL_HOST=localhost 3 | VIRTUAL_PORT=8000 4 | VIRTUAL_PROTO=http 5 | POSTGRES_DB=boards 6 | POSTGRES_USER=boardsuser 7 | POSTGRES_PASSWORD=boardsuser-password 8 | -------------------------------------------------------------------------------- /ferrishare/README.md: -------------------------------------------------------------------------------- 1 | Ferrishare es un estupendo servicio para compartir archivos de forma cifrada. 2 | 3 | Los archivos se cifran en tu navegador antes de enviarlo. El servidor ni puede ver ni puede descifrar el contenido. 4 | -------------------------------------------------------------------------------- /semaphore/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=semaphore.tuservidor.es 2 | SEMAPHORE_DB_DIALECT=bolt 3 | SEMAPHORE_ADMIN_PASSWORD=changeme 4 | SEMAPHORE_ADMIN_NAME=admin 5 | SEMAPHORE_ADMIN_EMAIL=admin@localhost 6 | SEMAPHORE_ADMIN=admin 7 | 8 | -------------------------------------------------------------------------------- /wikijs/sample.env: -------------------------------------------------------------------------------- 1 | POSTGRES_DB=wiki 2 | POSTGRES_PASSWORD=wikijsrocks 3 | POSTGRES_USER=wikijs 4 | DB_TYPE=postgres 5 | DB_HOST=db 6 | DB_PORT=5432 7 | DB_USER=wikijs 8 | DB_PASS=wikijsrocks 9 | DB_NAME=wiki 10 | 11 | -------------------------------------------------------------------------------- /caddy/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/caddy 6 | docker network create proxy 7 | docker-compose up -d 8 | docker-compose logs -f 9 | ``` 10 | -------------------------------------------------------------------------------- /nginx/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | nginx: 4 | build: . 5 | image: atareao/nginx:v2.0 6 | container_name: nginx 7 | restart: unless-stopped 8 | volumes: 9 | - ./html:/html 10 | -------------------------------------------------------------------------------- /wordpress/wpcli: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run -it \ 3 | --rm \ 4 | -v "$(pwd)/html:/var/www/html" \ 5 | --network container:wp \ 6 | --env-file wp.env \ 7 | wordpress:cli "$@" 8 | -------------------------------------------------------------------------------- /mysteryshack/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | mysteryshack: 5 | build: . 6 | image: atareao/mysteryshack:v1.0 7 | init: true 8 | restart: always 9 | volumes: 10 | - ./data:/rs/data 11 | -------------------------------------------------------------------------------- /planka/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | planka: 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 1337}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | -------------------------------------------------------------------------------- /planka/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=planka.tuservidor.es 2 | BASE_URL=http://planka.tuservidor.es 3 | TRUST_PROXY=0 4 | DATABASE_URL=postgresql://postgres@postgres/planka 5 | SECRET_KEY=notsecretkey 6 | POSTGRES_DB=planka 7 | POSTGRES_HOST_AUTH_METHOD=trust 8 | -------------------------------------------------------------------------------- /ghost/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.1' 2 | 3 | services: 4 | 5 | ghost: 6 | image: ghost:4-alpine 7 | restart: unless-stopped 8 | volumes: 9 | - ./blog:/var/lig/ghost/content 10 | environment: 11 | - url=${FQDN} 12 | -------------------------------------------------------------------------------- /snibox/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | snibox: 3 | networks: 4 | - proxy 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 80}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | -------------------------------------------------------------------------------- /uptime-kuma/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | 3 | services: 4 | 5 | uptime_kuma: 6 | image: louislam/uptime-kuma:1 7 | container_name: uptime_kuma 8 | restart: unless-stopped 9 | volumes: 10 | - ./data:/app/data 11 | -------------------------------------------------------------------------------- /dockge/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | dockge: 3 | networks: 4 | - proxy 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 5001}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | -------------------------------------------------------------------------------- /dasherr/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | dasherr: 4 | image: atareao/dasherr 5 | container_name: dasherr 6 | init: true 7 | restart: unless-stopped 8 | volumes: 9 | - ./htpasswd:/opt/nginx/conf/.htpasswd 10 | -------------------------------------------------------------------------------- /laverna/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | laverna: 4 | build: . 5 | image: atareao/laverna:v1.0 6 | container_name: laverna 7 | restart: unless-stopped 8 | volumes: 9 | - ./htpasswd:/opt/nginx/conf/htpasswd 10 | -------------------------------------------------------------------------------- /nginx/html/js/script.js: -------------------------------------------------------------------------------- 1 | const ready = (callback) => { 2 | if (document.readyState != "loading") callback(); 3 | else document.addEventListener("DOMContentLoaded", callback); 4 | } 5 | 6 | ready(() => { 7 | }); 8 | 9 | function init(){ 10 | } 11 | 12 | -------------------------------------------------------------------------------- /pastebin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | pastebin: 4 | build: . 5 | image: atareao/pastebin:v1.0 6 | container_name: pastebin 7 | restart: unless-stopped 8 | init: true 9 | volumes: 10 | - ./db:/rs/db 11 | -------------------------------------------------------------------------------- /portainer/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | portainer: 3 | networks: 4 | - proxy 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 9000}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | -------------------------------------------------------------------------------- /wallabag/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | wallabag: 3 | networks: 4 | - proxy 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 80}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | 13 | -------------------------------------------------------------------------------- /audiobookshelf/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | services: 2 | audiobookshelf: 3 | networks: 4 | - proxy 5 | labels: 6 | - caddy="${FQDN}" 7 | - caddy.reverse_proxy="{{upstreams 80}}" 8 | 9 | networks: 10 | proxy: 11 | external: true 12 | -------------------------------------------------------------------------------- /dasherr/html/js/script.js: -------------------------------------------------------------------------------- 1 | const ready = (callback) => { 2 | if (document.readyState != "loading") callback(); 3 | else document.addEventListener("DOMContentLoaded", callback); 4 | } 5 | 6 | ready(() => { 7 | }); 8 | 9 | function init(){ 10 | } 11 | 12 | -------------------------------------------------------------------------------- /ittools/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | ittools: 3 | image: corentinth/it-tools 4 | container_name: ittools 5 | init: true 6 | restart: unless-stopped 7 | networks: 8 | - proxy 9 | 10 | networks: 11 | proxy: 12 | external: true 13 | -------------------------------------------------------------------------------- /ntfy/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | ntfy: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /atuin/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | atuin: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8888}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /bookstack/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | bookstack: 4 | networks: 5 | - proxy 6 | labels: 7 | - caddy="${FQDN}" 8 | - caddy.reverse_proxy="{{upstreams 80}}" 9 | 10 | networks: 11 | proxy: 12 | external: true 13 | -------------------------------------------------------------------------------- /dim/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | dim: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /dnote/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | dnote: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /flame/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | flame: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 5005}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /homer/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | homer: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /memos/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | memos: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 5230}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /miniflux/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=https://miniflux.tuservidor.es 2 | DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable 3 | RUN_MIGRATIONS=1 4 | CREATE_ADMIN=1 5 | ADMIN_USERNAME=admin 6 | ADMIN_PASSWORD=test123 7 | POSTGRES_USER=miniflux 8 | POSTGRES_PASSWORD=secret 9 | -------------------------------------------------------------------------------- /nginx/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | nginx: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /nitter/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | nitter: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /shaarli/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | shaarli: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /umami/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | umami: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /webdav/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | webdav: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /yacht/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | yacht: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /yacht/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | yacht: 5 | image: selfhostedpro/yacht 6 | container_name: yacht 7 | volumes: 8 | - ./config:/config 9 | - /var/run/docker.sock:/var/run/docker.sock 10 | restart: unless-stopped 11 | -------------------------------------------------------------------------------- /dasherr/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | dasherr: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /dozzle/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | dozzle: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /flatnotes/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | flatnotes: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /freshrss/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | freshrss: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/env.grafana: -------------------------------------------------------------------------------- 1 | GF_INSTALL_PLUGINS=grafana-clock-panel,briangann-gauge-panel,natel-plotly-panel,grafana-simple-json-datasource 2 | GF_SECURITY_ADMIN_USER=lorenzo 3 | GF_SECURITY_ADMIN_PASSWORD=nW82DeEpmhSNz5rTdadCXpZuBEF8zZ7avA 4 | GF_USERS_ALLOW_SIGN_UP=FALSE 5 | -------------------------------------------------------------------------------- /huginn/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | huginn: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /jellyfin/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | jellyfin: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8096}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /kanboard/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | kanboard: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /laverna/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | laverna: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /metube/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | metube: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8081}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /pastebin/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | pastebin: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8081}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /postgres/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | pgadmin: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /rabbitmq/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | rabbitmq: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 15672}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /searxng/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | searxng: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /trilium/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | trilium: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /chevereto/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | chevereto: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /codimd/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | codimd: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${FQDN}" 10 | - caddy.reverse_proxy="{{upstreams 3000}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /ghost/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.1' 2 | 3 | services: 4 | ghost: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 2368}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /homepage/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | homepage: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /homer/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | homer: 3 | image: b4bz/homer 4 | container_name: homer 5 | init: true 6 | restart: unless-stopped 7 | volumes: 8 | - ./assets:/www/assets 9 | user: 1000:1000 10 | enviroment: 11 | INIT_ASSETS: 1 12 | -------------------------------------------------------------------------------- /immich/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | immich-proxy: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /invidious/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | invidious: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /logseq/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | logseq: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /memos/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | memos: 5 | image: neosmemo/memos:latest 6 | container_name: memos 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | - memos:/var/opt/memos 11 | 12 | volumes: 13 | memos: {} 14 | -------------------------------------------------------------------------------- /miniflux/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | miniflux: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8080}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /photoprism/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | photoprism: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 2342}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /radicale/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | radicale: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 5232}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /webdav/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | webdav: 4 | build: . 5 | image: atareao/webdav:v2.0 6 | container_name: webdav 7 | restart: unless-stopped 8 | volumes: 9 | - ./share:/share 10 | - ./htpasswd:/opt/nginx/conf/.htpasswd 11 | -------------------------------------------------------------------------------- /webdav/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mediaowner=$(ls -ld /share | awk '{print $3}') 4 | echo "Current /share owner is $mediaowner" 5 | if [ "$mediaowner" != "www-data" ] 6 | then 7 | chown -R www-data:www-data /share 8 | fi 9 | /opt/nginx/sbin/nginx -g "daemon off;" 10 | -------------------------------------------------------------------------------- /wger/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | nginx: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | 16 | -------------------------------------------------------------------------------- /zincsearch/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | zinc: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${FQDN}" 10 | - caddy.reverse_proxy="{{upstreams 4080}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /cloudbeaver/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | cloudbeaver: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 8978}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /facturascripts/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | facturascripts: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 80}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /filebrowser/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | filebrowser: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${FQDN}" 10 | - caddy.reverse_proxy="{{upstreams 80}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /navidrome/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | navidrome: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 4533}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /navidrome/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | navidrome: 5 | image: deluan/navidrome:latest 6 | container_name: navidrome 7 | restart: unless-stopped 8 | user: 1000:1000 9 | volumes: 10 | - ./music:/music:ro 11 | - ./data:/data 12 | -------------------------------------------------------------------------------- /picoshare/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | picoshare: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams ${PORT}}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /vaultwarden/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | vaultwarden: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${FQDN}" 10 | - caddy.reverse_proxy="{{upstreams 80}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /wikijs/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | wikijs: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams ${PORT}}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /firefly/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | 3 | services: 4 | 5 | fireflyiii: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${APP_URL}" 10 | - caddy.reverse_proxy="{{upstreams 8080}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /mysteryshack/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | mysteryshack: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 6767}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /simple-torrent/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | dasherr: 5 | networks: 6 | - proxy 7 | labels: 8 | - caddy="${FQDN}" 9 | - caddy.reverse_proxy="{{upstreams 3000}}" 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | 15 | -------------------------------------------------------------------------------- /zincobserve/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3' 3 | 4 | services: 5 | zincobserve: 6 | networks: 7 | - proxy 8 | labels: 9 | - caddy="${FQDN}" 10 | - caddy.reverse_proxy="{{upstreams 5080}}" 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /freshrss/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | freshrss: 5 | image: freshrss/freshrss:latest 6 | container_name: freshrss 7 | restart: unless-stopped 8 | volumes: 9 | - ./data:/var/www/FreshRSS/data 10 | - ./extensions:/var/www/FreshRSS/extensions 11 | -------------------------------------------------------------------------------- /ittools/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | ittools: 3 | labels: 4 | - traefik.enable=true 5 | - traefik.http.services.ittools.loadbalancer.server.port=80 6 | - traefik.http.routers.ittools.entrypoints=websecure 7 | - traefik.http.routers.ittools.rule=Host(`${FQDN}`) 8 | -------------------------------------------------------------------------------- /radicale/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | radicale: 5 | build: ./ 6 | image: atareao/radicale:v1.0 7 | container_name: radicale 8 | restart: unless-stopped 9 | volumes: 10 | - ./.htpasswd-users:/app/.htpasswd-users 11 | - ./data:/app/data 12 | -------------------------------------------------------------------------------- /uptime-kuma/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | 2 | version: '3.3' 3 | 4 | services: 5 | 6 | uptime_kuma: 7 | networks: 8 | - proxy 9 | labels: 10 | - caddy="${FQDN}" 11 | - caddy.reverse_proxy="{{upstreams 3001}}" 12 | 13 | networks: 14 | proxy: 15 | external: true 16 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/docker-compose.caddy.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | 5 | grafana: 6 | labels: 7 | - caddy="${FQDN}" 8 | - caddy.reverse_proxy="{{upstreams 3000}}" 9 | networks: 10 | - proxy 11 | 12 | networks: 13 | proxy: 14 | external: true 15 | -------------------------------------------------------------------------------- /kanboard/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | kanboard: 5 | image: kanboard/kanboard:latest 6 | container_name: kanboard 7 | restart: unless-stopped 8 | volumes: 9 | - ./kanboard_data:/bar/www/app/data 10 | - ./kanboard_plugins:/var/www/app/plugins 11 | -------------------------------------------------------------------------------- /notemark/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | notemark: 3 | labels: 4 | - traefik.enable=true 5 | - traefik.http.services.notemark.loadbalancer.server.port=8000 6 | - traefik.http.routers.notemark.rule=Host(`${FQDN}`) 7 | - traefik.http.routers.notemark.entrypoints=https 8 | -------------------------------------------------------------------------------- /mtproxy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | mtproxy: 4 | image: ghcr.io/dofamin/mtproxy-docker:main 5 | init: true 6 | container_name: mtproxy 7 | environment: 8 | - MTPROTO_REPO_URL 9 | - SECRET 10 | - WORKERS 11 | - TZ 12 | ports: 13 | - 8388:8889 14 | -------------------------------------------------------------------------------- /vaultwarden/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | vaultwarden: 5 | image: vaultwarden/server:latest 6 | container_name: vaultwarden 7 | volumes: 8 | - ./data:/data 9 | restart: unless-stopped 10 | environment: 11 | - ADMIN_TOKEN=some_random_token_as_per_above_explanation -------------------------------------------------------------------------------- /cloudbeaver/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | cloudbeaver: 5 | image: dbeaver/cloudbeaver:latest 6 | container_name: cloudbeaver 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | - cloudbeaver:/opt/cloudbeaver/workspace 11 | 12 | volumes: 13 | cloudbeaver: {} 14 | -------------------------------------------------------------------------------- /dozzle/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | dozzle: 5 | image: amir20/dozzle:latest 6 | container_name: dozzle 7 | init: true 8 | volumes: 9 | - /var/run/docker.sock:/var/run/docker.sock 10 | environment: 11 | DOZZLE_USERNAME: user 12 | DOZZLE_PASSWORD: password 13 | -------------------------------------------------------------------------------- /umami/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | umami: 3 | networks: 4 | - proxy 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.umami.loadbalancer.server.port=3000 8 | - traefik.http.routers.umami.rule=Host(`${FQDN}`) 9 | 10 | networks: 11 | proxy: 12 | external: true 13 | -------------------------------------------------------------------------------- /zincobserve/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | zincobserve: 5 | image: public.ecr.aws/zinclabs/zincobserve:latest 6 | init: true 7 | container_name: zincobserve 8 | env_file: 9 | - .env 10 | volumes: 11 | - data:/data 12 | restart: always 13 | 14 | volumes: 15 | data: {} 16 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=grafana.tudominio.es 2 | GF_INSTALL_PLUGINS=grafana-clock-panel,briangann-gauge-panel,natel-plotly-panel,grafana-simple-json-datasource 3 | GF_SECURITY_ADMIN_USER=admin 4 | GF_SECURITY_ADMIN_PASSWORD=adminpassword 5 | GF_USERS_ALLOW_SIGN_UP=FALSE 6 | INFLUXDB_DATA_ENGINE=tsm1 7 | INFLUXDB_REPORTING_DISABLED=false 8 | -------------------------------------------------------------------------------- /portainer/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | portainer: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.http.services.portainer.loadbalancer.server.port=9000 9 | - traefik.http.routers.portainer-secure.rule=Host(`${FQDN}`) 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /shaarli/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | shaarli: 5 | image: shaarli/shaarli:latest 6 | container_name: shaarli 7 | init: true 8 | restart: always 9 | volumes: 10 | - cache:/var/www/shaarli/cache 11 | - data:/var/www/shaarli/data 12 | 13 | volumes: 14 | cache: {} 15 | data: {} 16 | -------------------------------------------------------------------------------- /portainer/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | 5 | portainer: 6 | image: portainer/portainer-ce:alpine 7 | container_name: portainer 8 | init: true 9 | restart: unless-stopped 10 | volumes: 11 | - /var/run/docker.sock:/var/run/docker.sock 12 | - data:/data 13 | 14 | volumes: 15 | data: {} 16 | -------------------------------------------------------------------------------- /picoshare/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | picoshare: 5 | image: mtlynch/picoshare 6 | container_name: picoshare 7 | init: true 8 | restart: unless-stopped 9 | environment: 10 | - PORT 11 | - PS_SHARED_SECRET 12 | volumes: 13 | - picoshare:/data 14 | 15 | volumes: 16 | picoshare: {} 17 | -------------------------------------------------------------------------------- /flame/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | flame: 5 | image: pawelmalak/flame 6 | container_name: flame 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | - flame:/app/data 11 | - /var/run/docker.sock:/var/run/docker.sock 12 | environment: 13 | - PASSWORD 14 | 15 | volumes: 16 | flame: {} 17 | -------------------------------------------------------------------------------- /metube/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | metube: 5 | image: alexta69/metube 6 | container_name: metube 7 | init: true 8 | restart: unless-stopped 9 | networks: 10 | - proxy 11 | volumes: 12 | - metube:/downloads 13 | 14 | volumes: 15 | metube: {} 16 | 17 | networks: 18 | proxy: 19 | external: true 20 | -------------------------------------------------------------------------------- /filebrowser/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | filebrowser: 5 | image: filebrowser/filebrowser 6 | container_name: filebrowser 7 | init: true 8 | restart: unless-stopped 9 | user: ${UID}:${GID} 10 | volumes: 11 | - ./srv:/srv 12 | - ./filebrowser.db:/database.db 13 | - ./filebrowser.json:/.filebrowser.json 14 | -------------------------------------------------------------------------------- /homepage/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | homepage: 5 | image: ghcr.io/benphelps/homepage:latest 6 | container_name: homepage 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | - homepage_config:/app/config 11 | - /var/run/docker.sock:/var/run/docker.sock:ro 12 | 13 | volumes: 14 | homepage_config: {} 15 | -------------------------------------------------------------------------------- /audiobookshelf/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | audiobookshelf: 3 | networks: 4 | - proxy 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.audiobookshelf.loadbalancer.server.port=80 8 | - traefik.http.routers.audiobookshelf.rule=Host(`books.tuservidor.es`) 9 | 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /socks5/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | socks5: 5 | image: serjs/go-socks5-proxy 6 | init: true 7 | container_name: socks5 8 | environment: 9 | - PROXY_USER 10 | - PROXY_PASSWORD 11 | - PROXY_PORT 12 | volumes: 13 | - ./config.json:/etc/shadowsocks-rust/config.json 14 | ports: 15 | - "8388:8388" 16 | -------------------------------------------------------------------------------- /unbound/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | unbound: 3 | container_name: unbound 4 | image: mvance/unbound:latest 5 | init: true 6 | ports: 7 | - 53:53/tcp 8 | - 53:53/udp 9 | volumes: 10 | - ./unbound.conf:/opt/unbound/etc/unbound/unbound.conf 11 | - ./conf:/opt/unbound/etc/unbound/unbound.conf.d/ 12 | restart: unless-stopped 13 | -------------------------------------------------------------------------------- /codimd/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=codimd.tuservidor.es 2 | POSTGRES_USER=codimd 3 | POSTGRES_PASSWORD=change_password 4 | POSTGRES_DB=codimd 5 | CMD_DB_URL=postgres://codimd:change_password@codimddb/codimd 6 | CMD_USECDN=false 7 | CMD_ALLOW_ANONYMOUS=false 8 | CMD_ALLOW_ANONYMOUS_EDITS=false 9 | CMD_ALLOW_ANONYMOUS_VIEWS=true 10 | CMD_ALLOW_PDF_EXPORT=true 11 | CMD_ALLOW_EMAIL_REGISTER=false 12 | -------------------------------------------------------------------------------- /memos/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | memos: 3 | networks: 4 | - proxy 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.memos.loadbalancer.server.port=5230 8 | - traefik.http.routers.memos.entrypoints=websecure 9 | - traefik.http.routers.memos.rule=Host(`${FQDN}`) 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /tick/tick.env: -------------------------------------------------------------------------------- 1 | GF_SECURITY_ADMIN_USER= 2 | GF_SECURITY_ADMIN_PASSWORD= 3 | GF_USERS_ALLOW_SIGN_UP=FALSE 4 | DOCKER_INFLUXDB_INIT_MODE=setup 5 | DOCKER_INFLUXDB_INIT_USERNAME= 6 | DOCKER_INFLUXDB_INIT_PASSWORD= 7 | DOCKER_INFLUXDB_INIT_ORG= 8 | DOCKER_INFLUXDB_INIT_BUCKET= 9 | DOCKER_INFLUXDB_INIT_RETENTION=30d 10 | DOCKER_INFLUXDB_INIT_ADMIN_TOKEN= 11 | INFLUXDB_FQDN= 12 | GRAFANA_FQDN= 13 | -------------------------------------------------------------------------------- /dockge/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | services: 2 | dockge: 3 | networks: 4 | - proxy 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.dockge.loadbalancer.server.port=5001 8 | - traefik.http.routers.dockge.entrypoints=websecure 9 | - traefik.http.routers.dockge.rule=Host(`${FQDN}`) 10 | 11 | networks: 12 | proxy: 13 | external: true 14 | -------------------------------------------------------------------------------- /zincsearch/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | zinc: 5 | image: public.ecr.aws/h9e2j3o7/zinc:latest 6 | container_name: zinc 7 | environment: 8 | - DATA_PATH 9 | - ZINC_FIRST_ADMIN_USER 10 | - ZINC_FIRST_ADMIN_PASSWORD 11 | - TOKEN 12 | volumes: 13 | - data:/data 14 | restart: always 15 | 16 | volumes: 17 | data: {} 18 | -------------------------------------------------------------------------------- /jellyfin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | jellyfin: 4 | image: jellyfin/jellyfin 5 | container_name: jellyfin 6 | restart: unless-stopped 7 | user: 1000:1000 8 | volumes: 9 | - ./config:/config 10 | - ./cache:/cache 11 | - ./media:/media 12 | - ./media2:/media2:ro 13 | environment: 14 | - JELLYFIN_PublishedServerUrl=${FQDN} 15 | -------------------------------------------------------------------------------- /dim/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | dim: 5 | image: ghcr.io/dusk-labs/dim:dev 6 | container_name: dim 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | - ./config:/opt/dim/config 11 | - media:/media 12 | # Add more folders like so: 13 | # - /:/media2 14 | 15 | volumes: 16 | config: {} 17 | media: {} 18 | -------------------------------------------------------------------------------- /trilium/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | trilium: 3 | image: zadam/trilium:latest 4 | container_name: trilium 5 | init: true 6 | restart: unless-stopped 7 | networks: 8 | - internal 9 | environment: 10 | - TRILIUM_DATA_DIR 11 | volumes: 12 | - trilium:/home/node/trilium-data 13 | 14 | volumes: 15 | trilium: {} 16 | 17 | networks: 18 | internal: {} 19 | -------------------------------------------------------------------------------- /silverbullet/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | silverbullet: 5 | container_name: silverbullet 6 | image: atareao/silverbullet:latest 7 | volumes: 8 | - ./space:/space 9 | restart: unless-stopped 10 | environment: 11 | SB_USER: "${USERNAME}:${PASSWORD}" 12 | networks: 13 | - proxy 14 | 15 | networks: 16 | proxy: 17 | external: true 18 | -------------------------------------------------------------------------------- /vector/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | 4 | [Flame](https://github.com/pawelmalak/flame) es un software para crear una "página de inicio" con enlaces a nuestras aplicaciones web y sitios web favoritos. 5 | 6 | ``` 7 | git clone https://github.com/atareao/self-hosted.git 8 | cd self-hosted/flame 9 | cp sample.vector.toml vector.toml 10 | ``` 11 | 12 | Además recuerda cambiar el usuario y la contraseña. 13 | -------------------------------------------------------------------------------- /vscode/README.md: -------------------------------------------------------------------------------- 1 | # Visual Studio Code online 2 | 3 | ## Clonar el repositorio 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/vscode 8 | mkdir config 9 | ``` 10 | 11 | Remember to change and for your own credentials 12 | 13 | If you want to work with Traefik, 14 | 15 | ``` 16 | docker-compose docker-compose.yml -d 17 | docker-compose logs -f 18 | ``` 19 | -------------------------------------------------------------------------------- /wordpressx2/phpmyadmin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | myadmin: 5 | image: phpmyadmin 6 | restart: always 7 | networks: 8 | - proxy 9 | - wp 10 | labels: 11 | - caddy="${FQDN}" 12 | - caddy.reverse_proxy="{{upstreams 80}}" 13 | environment: 14 | - PMA_ARBITRARY=1 15 | 16 | networks: 17 | proxy: 18 | external: true 19 | wp: 20 | external: true 21 | -------------------------------------------------------------------------------- /dockge/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | dockge: 3 | image: louislam/dockge:1 4 | container_name: dockge 5 | restart: unless-stopped 6 | init: true 7 | volumes: 8 | - /var/run/docker.sock:/var/run/docker.sock 9 | - ./stacks:/opt/stacks 10 | - data:/app/data 11 | environment: 12 | - DOCKGE_STACKS_DIR=/opt/stacks 13 | - DOCKGE_ENABLE_CONSOLE=true 14 | 15 | volumes: 16 | data: {} 17 | -------------------------------------------------------------------------------- /.github/workflows/autoassign.yml: -------------------------------------------------------------------------------- 1 | name: Issue assignment 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | auto-assign: 10 | runs-on: ubuntu-latest 11 | permissions: 12 | issues: write 13 | steps: 14 | - name: 'Auto-assign issue' 15 | uses: pozil/auto-assign-issue@v2 16 | with: 17 | assignees: atareao 18 | numOfAssignee: 1 19 | allowSelfAssign: true 20 | -------------------------------------------------------------------------------- /traefik/conf/tls.yml: -------------------------------------------------------------------------------- 1 | tls: 2 | options: 3 | default: 4 | minVersion: VersionTLS12 5 | cipherSuites: 6 | - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" 7 | - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" 8 | - "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305" 9 | - "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" 10 | - "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" 11 | - "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305" 12 | -------------------------------------------------------------------------------- /wallabag/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | wallabag: 4 | image: wallabag/wallabag 5 | init: true 6 | container_name: wallabag 7 | environment: 8 | - SYMFONY__ENV__DOMAIN_NAME="https://${FQDN}" 9 | - SYMFONY__ENV__SERVER_NAME="${NAME}" 10 | volumes: 11 | - ./images:/var/www/wallabag/web/assets/images 12 | - ./data:/var/www/wallabag/data 13 | restart: unless-stopped 14 | 15 | -------------------------------------------------------------------------------- /audiobookshelf/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | audiobookshelf: 3 | image: ghcr.io/advplyr/audiobookshelf:latest 4 | container_name: audiobookshelf 5 | restart: unless-stopped 6 | volumes: 7 | - books:/books 8 | - metadata:/metadata 9 | - config:/config 10 | environment: 11 | - user=1000:1000 12 | - Tz=Europe/Madrid 13 | 14 | volumes: 15 | books: 16 | external: true 17 | metadata: {} 18 | config: {} 19 | -------------------------------------------------------------------------------- /vector/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | vector: 5 | image: timberio/vector:latest-alpine 6 | container_name: vector 7 | restart: unless-stopped 8 | init: true 9 | ports: 10 | - 8686:8686 11 | volumes: 12 | - ./vector.toml:/etc/vector/vector.toml:ro 13 | - /var/run/docker.sock:/var/run/docker.sock:ro 14 | networks: 15 | - networklog 16 | 17 | networks: 18 | networklog: 19 | external: true 20 | -------------------------------------------------------------------------------- /registry/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | registry-ui: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.registryui.loadbalancer.server.port=80 8 | - traefik.http.routers.registryui-secure.entrypoints=https 9 | - traefik.http.routers.registryui-secure.rule=Host(`${FQDN}`) 10 | - traefik.http.routers.registryui-secure.tls=true 11 | - traefik.http.routers.rabbitmq-secure.tls.certresolver=letsencrypt 12 | -------------------------------------------------------------------------------- /openobserve/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | openobserve: 5 | image: public.ecr.aws/zinclabs/openobserve:latest 6 | init: true 7 | container_name: openobserve 8 | env_file: 9 | - .env 10 | volumes: 11 | - data:/data 12 | restart: always 13 | networks: 14 | - proxy 15 | - networklog 16 | 17 | volumes: 18 | data: {} 19 | 20 | networks: 21 | networklog: 22 | external: true 23 | proxy: 24 | external: true 25 | -------------------------------------------------------------------------------- /wikijs/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/wijjs 6 | mkdir data 7 | ``` 8 | 9 | If you want to work with Traefik, 10 | 11 | ``` 12 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 13 | docker-compose logs -f 14 | ``` 15 | 16 | If you want to work with Caddy, 17 | 18 | ``` 19 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 20 | docker-compose logs -f 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /facturascripts/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | mariadb: 5 | image: mariadb 6 | restart: unless-stopped 7 | volumes: 8 | - ./mariadb:/var/lib/mysql 9 | env_file: 10 | - .env 11 | networks: 12 | - internal 13 | 14 | facturascripts: 15 | image: facturascripts/facturascripts:latest 16 | restart: always 17 | volumes: 18 | - ./facturascripts:/var/www/html 19 | networks: 20 | - internal 21 | 22 | networks: 23 | internal: 24 | -------------------------------------------------------------------------------- /rabbitmq/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | rabbitmq: 5 | image: rabbitmq:3-management 6 | container_name: rabbitmq 7 | init: true 8 | ports: 9 | - 5672:5672 10 | environment: 11 | - RABBITMQ_DEFAULT_USER=usuario 12 | - RABBITMQ_DEFAULT_PASS=contraseña 13 | volumes: 14 | - rabbitmq:/var/lib/rabbitmq/mnseia/ 15 | networks: 16 | - mq 17 | 18 | volumes: 19 | rabbitmq: {} 20 | 21 | networks: 22 | mq: 23 | external: true 24 | -------------------------------------------------------------------------------- /nginx/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/nginx 6 | mkdir html 7 | cp sample.env .env 8 | ``` 9 | 10 | If you want to work with Traefik, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | If you want to work with Caddy, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /ghost/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/ghost 6 | mkdir blog 7 | cp sample.env .env 8 | ``` 9 | 10 | If you want to work with Traefik, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | If you want to work with Caddy, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /caddy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | caddy: 4 | image: lucaslorentz/caddy-docker-proxy:latest 5 | init: true 6 | ports: 7 | - 80:80 8 | - 443:443 9 | environment: 10 | - CADDY_INGRESS_NETWORKS=proxy 11 | networks: 12 | - proxy 13 | volumes: 14 | - /var/run/docker.sock:/var/run/docker.sock 15 | - caddy_data:/data 16 | restart: unless-stopped 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | 22 | volumes: 23 | caddy_data: {} 24 | -------------------------------------------------------------------------------- /flatnotes/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | flatnotes: 5 | image: dullage/flatnotes:latest 6 | container_name: flatnotes 7 | init: true 8 | environment: 9 | - FLATNOTES_AUTH_TYPE 10 | - FLATNOTES_USERNAME 11 | - FLATNOTES_PASSWORD 12 | - FLATNOTES_SECRET_KEY 13 | restart: unless-stopped 14 | networks: 15 | - proxy 16 | volumes: 17 | - data:/app/data 18 | 19 | volumes: 20 | data: {} 21 | 22 | networks: 23 | proxy: 24 | external: true 25 | -------------------------------------------------------------------------------- /mysteryshack/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bnjbvr/mysteryshack-docker as builder 2 | 3 | FROM ubuntu:18.04 4 | 5 | RUN apt-get update --quiet && \ 6 | apt-get dist-upgrade --yes && \ 7 | apt-get install --quiet --yes --no-install-recommends \ 8 | libssl1.0.0 \ 9 | gosu 10 | 11 | RUN mkdir -p /rs/data 12 | COPY create-user.sh config.ini entrypoint.sh /rs/ 13 | RUN chmod +x /rs/create-user.sh 14 | COPY --from=builder /rs/mysteryshack/target/release/mysteryshack /rs/ 15 | 16 | WORKDIR /rs 17 | 18 | CMD ["/bin/sh", "/rs/entrypoint.sh"] 19 | -------------------------------------------------------------------------------- /simple-torrent/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | simpletorrent: 4 | image: boypt/cloud-torrent 5 | container_name: simpletorrent 6 | init: true 7 | restart: unless-stopped 8 | ports: 9 | - "50012:50012" 10 | - "50012:50012/udp" 11 | environment: 12 | AUTH: "username:password" 13 | TITLE: "MySimpleTorrent" 14 | volumes: 15 | - ./downloads:/srv/downloads 16 | - ./cloud-torrent.yaml:/etc/cloud-torrent.yaml 17 | command: ["-c", "/etc/cloud-torrent.yaml"] 18 | -------------------------------------------------------------------------------- /notemark/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | notemark: 3 | image: ghcr.io/enchant97/note-mark-aio 4 | container_name: notemark 5 | init: true 6 | restart: unless-stopped 7 | volumes: 8 | - data:/data 9 | networks: 10 | - proxy 11 | environment: 12 | # !!! REPLACE These !!! 13 | JWT_SECRET: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 14 | CORS_ORIGINS: "https://${FQDN}" 15 | ALLOW_SIGNUP: false 16 | 17 | volumes: 18 | data: {} 19 | 20 | networks: 21 | proxy: 22 | external: true 23 | -------------------------------------------------------------------------------- /sftpgo/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | sftpgo: 5 | image: drakkan/sftpgo:alpine 6 | container_name: sftpgo 7 | init: true 8 | restart: unless-stopped 9 | ports: 10 | - 2022:2022 11 | - 10080:10080 12 | environment: 13 | - SFTPGO_WEBDAV__BINDINGS__0__PORT=10080 14 | volumes: 15 | - data:/sfv/sftpgo 16 | - home:/var/lib/sftpgo 17 | networks: 18 | - proxy 19 | 20 | volumes: 21 | data: {} 22 | home: {} 23 | networks: 24 | proxy: 25 | external: true 26 | -------------------------------------------------------------------------------- /wger/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | nginx: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.wger.loadbalancer.server.port=80 10 | - traefik.http.routers.wger-secure.entrypoints=websecure 11 | - traefik.http.routers.wger-secure.rule=Host(`${FQDN}`) 12 | - traefik.http.routers.wger-secure.tls=true 13 | - traefik.http.routers.wger-secure.tls.certresolver=letsencrypt 14 | 15 | networks: 16 | proxy: 17 | external: true 18 | -------------------------------------------------------------------------------- /snibox/sample.env: -------------------------------------------------------------------------------- 1 | FQDN=snibox.tuservidor.es 2 | # Secrets 3 | SECRET_KEY_BASE=ewiqrfdasreifkdajfjdkasjfñdasjfjdasjfdajsflkdasjl 4 | 5 | # SSL 6 | FORCE_SSL=false 7 | 8 | # Database 9 | DB_NAME=postgres 10 | DB_USER=postgres 11 | DB_PASS= 12 | DB_HOST=database 13 | DB_PORT=5432 14 | 15 | # Mailgun. Required by 'Reset password feature'. Feel free to start without this setup. 16 | MAILGUN_SMTP_PORT=587 17 | MAILGUN_SMTP_SERVER=smtp.mailgun.org 18 | MAILGUN_SMTP_LOGIN= 19 | MAILGUN_SMTP_PASSWORD= 20 | MAILGUN_API_KEY= 21 | MAILGUN_DOMAIN= 22 | MAILGUN_PUBLIC_KEY= 23 | -------------------------------------------------------------------------------- /navidrome/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/navidrome 6 | mkdir music data 7 | cp sample.env .env 8 | sed -i 's/navidrome.tuservidor.es/la-url-que-quieras/g' .env 9 | ``` 10 | 11 | If you want to work with Traefik, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | If you want to work with Caddy, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | -------------------------------------------------------------------------------- /socks5/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/socks5 6 | cp sample.env .env 7 | ``` 8 | 9 | El archivo `.env` tiene el siguiente contenido, 10 | 11 | ```bash 12 | PROXY_USER=yi9eiThei%qu3Ahv 13 | PROXY_PASSWORD=pequ5Ez,oo6io6ae 14 | PROXY_PORT=8388 15 | ``` 16 | 17 | Cambia las credenciales. Por ejemplo, puedes utilizar `pwgen` para ello. 18 | 19 | Recuerda que tienes que tener abierto el puerto que definas en tu firewall. 20 | 21 | Por último, simplemente, 22 | 23 | ```bash 24 | docker compose up -d 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /readeck/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | readeck: 3 | image: codeberg.org/readeck/readeck 4 | container_name: readeck 5 | restart: unless-stopped 6 | init: true 7 | volumes: 8 | - data:/readeck 9 | networks: 10 | - proxy 11 | labels: 12 | - traefik.enable=true 13 | - traefik.http.services.readeck.loadbalancer.server.port=8000 14 | - traefik.http.routers.readeck.entrypoints=https 15 | - traefik.http.routers.readeck.rule=Host(`${FQDN}`) 16 | 17 | 18 | volumes: 19 | data: {} 20 | 21 | networks: 22 | proxy: 23 | external: true 24 | -------------------------------------------------------------------------------- /uptime-kuma/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | 3 | services: 4 | 5 | uptime_kuma: 6 | networks: 7 | - proxy 8 | labels: 9 | - traefik.enable=true 10 | - traefik.http.services.uptime_kuma.loadbalancer.server.port=3001 11 | - traefik.http.routers.uptime_kuma-secure.entrypoints=websecure 12 | - traefik.http.routers.uptime_kuma-secure.rule=Host(`${FQDN}`) 13 | - traefik.http.routers.uptime_kuma-secure.tls=true 14 | - traefik.http.routers.uptime_kuma-secure.tls.certresolver=letsencrypt 15 | 16 | networks: 17 | proxy: 18 | external: true 19 | -------------------------------------------------------------------------------- /codimd/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | codimddb: 4 | image: postgres:11.6-alpine 5 | env_file: 6 | - .env 7 | volumes: 8 | - ./codimddb:/var/lib/postgresql/data" 9 | restart: always 10 | networks: 11 | - internal 12 | codimd: 13 | image: hackmdio/hackmd:2.4.2-cjk 14 | env_file: 15 | - .env 16 | depends_on: 17 | - codimddb 18 | ports: 19 | - "3000:3000" 20 | volumes: 21 | - ./codimd:/home/hackmd/app/public/uploads 22 | restart: always 23 | networks: 24 | - internal 25 | 26 | networks: 27 | internal: 28 | -------------------------------------------------------------------------------- /ferrishare/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | ferrishare: 3 | image: ghcr.io/tobiasmarschner/ferrishare 4 | container_name: ferrishare 5 | restart: unless-stopped 6 | init: true 7 | volumes: 8 | - data:/app/data 9 | networks: 10 | - proxy 11 | labels: 12 | - traefik.enable=true 13 | - traefik.http.services.ferrishare.loadbalancer.server.port=3000 14 | - traefik.http.routers.ferrishare.entrypoints=https 15 | - traefik.http.routers.ferrishare.rule=Host(`${FQDN}`) 16 | 17 | 18 | volumes: 19 | data: {} 20 | 21 | networks: 22 | proxy: 23 | external: true 24 | -------------------------------------------------------------------------------- /whisper/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | whisper: 3 | image: onerahmet/openai-whisper-asr-webservice:latest-gpu 4 | container_name: whisper 5 | restart: always 6 | init: true 7 | environment: 8 | ASR_MODEL: large-v1 9 | ASR_ENGINE: faster_whisper 10 | ASR_MODEL_PATH: /data/whisper 11 | volumes: 12 | - data:/data/whisper 13 | ports: 14 | - 9000:9000 15 | deploy: 16 | resources: 17 | reservations: 18 | devices: 19 | - driver: nvidia 20 | count: all 21 | capabilities: [gpu] 22 | 23 | volumes: 24 | data: {} 25 | -------------------------------------------------------------------------------- /freshrss/docker-compose.postgres.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | db: 5 | image: postgres:12-alpine 6 | container_name: db 7 | hostname: db 8 | restart: unless-stopped 9 | volumes: 10 | - db:/var/lib/postgresql/data 11 | environment: 12 | POSTGRES_USER: ${POSTGRES_USER:-freshrss} 13 | POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-freshrss} 14 | POSTGRES_DB: ${POSTGRES_DB:-freshrss} 15 | networks: 16 | - internal 17 | 18 | freshrss: 19 | depends_on: 20 | - db 21 | networks: 22 | - internal 23 | 24 | volumes: 25 | db: 26 | 27 | networks: 28 | internal: 29 | -------------------------------------------------------------------------------- /vector/sample.vector.toml: -------------------------------------------------------------------------------- 1 | [api] 2 | enabled = true 3 | address = "0.0.0.0:8686" 4 | 5 | [sources.docker_logs] 6 | type = "docker_logs" 7 | 8 | # [sinks.console] 9 | # inputs = ["docker_logs"] 10 | # target = "stdout" 11 | # type = "console" 12 | # encoding.codec = "json" 13 | 14 | [sinks.zo] 15 | type = "http" 16 | inputs = ["docker_logs"] 17 | uri = "http://zincobserve:5080/api/default/logs/_json" 18 | method = "post" 19 | auth.strategy = "basic" 20 | auth.user = "usuario" 21 | auth.password = "contraseña" 22 | compression = "gzip" 23 | encoding.codec = "json" 24 | encoding.timestamp_format = "rfc3339" 25 | healthcheck.enabled = false 26 | -------------------------------------------------------------------------------- /portainer+traefik/jellyfin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | jellyfin: 4 | image: jellyfin/jellyfin 5 | container_name: jellyfin 6 | init: true 7 | restart: unless-stopped 8 | user: 1000:1000 9 | volumes: 10 | - config:/config 11 | - cache:/cache 12 | - media:/media 13 | networks: 14 | - proxy 15 | labels: 16 | - traefik.http.services.jellyfin.loadbalancer.server.port=8096 17 | - traefik.http.routers.jellyfin.rule=Host(`${FQDN}`) 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | volumes: 24 | config: {} 25 | cache: {} 26 | media: {} 27 | -------------------------------------------------------------------------------- /semaphore/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | semaphore: 5 | image: semaphoreui/semaphore:latest 6 | container_name: semaphore 7 | init: true 8 | restart: unless-stopped 9 | volumes: 10 | environment: 11 | - SEMAPHORE_DB_DIALECT 12 | - SEMAPHORE_ADMIN_PASSWORD 13 | - SEMAPHORE_ADMIN_NAME 14 | - SEMAPHORE_ADMIN_EMAIL 15 | - SEMAPHORE_ADMIN 16 | volumes: 17 | - config:/etc/semaphore 18 | - data:/var/lib/semaphore 19 | networks: 20 | - proxy 21 | 22 | volumes: 23 | config: {} 24 | data: {} 25 | 26 | networks: 27 | proxy: 28 | external: true 29 | -------------------------------------------------------------------------------- /dasherr/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/nginx 6 | touch htpasswd 7 | docker run --init -it -v "${PWD}/htpasswd:/opt/nginx/conf/.htpasswd" --rm --name dasherr atareao/dasherr htpasswd -c /opt/nginx/conf/.htpasswd tuusuario 8 | ``` 9 | 10 | If you want to work with Traefik, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | If you want to work with Caddy, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /dozzle/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/dozzle 6 | cp sample.env .env 7 | sed -i "s/dozzle.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /jellyfin/README.md: -------------------------------------------------------------------------------- 1 | # Servidor jellyfin 2 | 3 | ## Clonar el repositorio 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/jellyfin 8 | mkdir config cache media media2 9 | cp sample.env .env 10 | sed -i "s/jellyfin.tuservidor.es/el_fqdn_que_quieras/g" .env 11 | ``` 12 | 13 | 14 | If you want to work with Traefik, 15 | 16 | ``` 17 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 18 | docker-compose logs -f 19 | ``` 20 | 21 | If you want to work with Caddy, 22 | 23 | ``` 24 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 25 | docker-compose logs -f 26 | ``` 27 | -------------------------------------------------------------------------------- /memos/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/memos 6 | cp sample.env .env 7 | sed -i "s/memos.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /mysteryshack/config.ini: -------------------------------------------------------------------------------- 1 | [main] 2 | # On which IP and port to listen. 3 | listen = "0.0.0.0:6767" 4 | 5 | # Where to store all user data. 6 | data_path = "./data" 7 | 8 | # When true, use the following headers for proxy support: 9 | # 10 | # - X-Forwarded-Host: The original Host 11 | # - X-Forwarded-Port: The original port 12 | # - X-Forwarded-For: A comma separated list of client/proxy IPs. Only the first 13 | # will be taken. 14 | # - X-Forwarded-Proto: The original scheme (`http`/`https`) 15 | # 16 | # Note that all of the above headers need to be present for security reasons, 17 | # otherwise the request will fail. 18 | use_proxy_headers = true 19 | -------------------------------------------------------------------------------- /dockge/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/dockge 6 | cp sample.env .env 7 | sed -i "s/dockge.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /homepage/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/homepage 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /huginn/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/huginn 6 | cp sample.env .env 7 | sed -i "s/huginn.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /kavita/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | 3 | kavita: 4 | image: jvmilazz0/kavita 5 | container_name: kavita 6 | restart: unless-stopped 7 | init: true 8 | environment: 9 | TZ: Europe/Madrid 10 | networks: 11 | - proxy 12 | volumes: 13 | - books:/books 14 | - data:/kavita/config 15 | labels: 16 | - traefik.enable=true 17 | - traefik.http.services.kavita.loadbalancer.server.port=5000 18 | - traefik.http.routers.kavita.rule=Host(`kavita.tuservidor.es`) 19 | 20 | volumes: 21 | books: 22 | external:true 23 | data: {} 24 | 25 | networks: 26 | proxy: 27 | external: true 28 | -------------------------------------------------------------------------------- /wger/nginx.conf: -------------------------------------------------------------------------------- 1 | upstream wger { 2 | server web:8000; 3 | } 4 | 5 | server { 6 | 7 | listen 80; 8 | 9 | location / { 10 | proxy_pass http://wger; 11 | proxy_set_header Host $host; 12 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 13 | proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; 14 | proxy_redirect off; 15 | } 16 | 17 | location /static/ { 18 | alias /wger/static/; 19 | } 20 | 21 | location /media/ { 22 | alias /wger/media/; 23 | } 24 | 25 | # Increase max body size to allow for video uploads 26 | client_max_body_size 100M; 27 | } -------------------------------------------------------------------------------- /chevereto/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/chevereto 6 | cp sample.env .env 7 | sed -i "s/chevereto.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | -------------------------------------------------------------------------------- /gitea/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/gitea 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir data 9 | ``` 10 | 11 | Recuerda abrir el puerto 2222 de tu servidor, y en el caso de que tengas router o similar, redirigir las conexiones del router a tu servidor. 12 | 13 | El siguiente paso es levantar. Aquí solo te doy la opción de hacerlo con Traefik, porque necesitas algunas opciones que no te da la versión de caddy que estoy utilizando. 14 | 15 | ``` 16 | docker-compose docker-compose.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | -------------------------------------------------------------------------------- /miniflux/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/miniflux 6 | cp sample.env .env 7 | sed -i "s/miniflux.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | Mientras que si has elegido Traefik, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /photoprism/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | 5 | photoprism: 6 | image: photoprism/photoprism:latest 7 | restart: unless-stopped 8 | security_opt: 9 | - seccomp:unconfined 10 | - apparmor:unconfined 11 | healthcheck: # Optional 12 | test: "photoprism status" 13 | interval: 60s 14 | timeout: 15s 15 | retries: 5 16 | env_file: 17 | - .env 18 | 19 | volumes: 20 | - ./Pictures:/photoprism/originals 21 | - ./Storage:/photoprism/storage # Settings, index, sidecar and thumbnails 22 | - ./Import:/photoprism/import # Mounting the import folder is optional 23 | -------------------------------------------------------------------------------- /couchdb/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | couchdb: 3 | image: couchdb 4 | container_name: couchdb 5 | restart: unless-stopped 6 | environment: 7 | COUCHDB_USER: "usuario" 8 | COUCHDB_PASSWORD: "contraseña" 9 | networks: 10 | - proxy 11 | volumes: 12 | - data:/opt/couchdb/data 13 | labels: 14 | - traefik.enable=true 15 | - traefik.http.services.couchdb.loadbalancer.server.port=5984 16 | - traefik.http.routers.couchdb.rule=Host(`couchdb.tuservidor.es`) 17 | - traefik.http.routers.couchdb.entrypoints=websecure 18 | 19 | volumes: 20 | data: {} 21 | 22 | networks: 23 | proxy: 24 | external: true 25 | -------------------------------------------------------------------------------- /dnote/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/dnote 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir dnote_data 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /focalboard/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "serverRoot": "http://localhost:8000", 3 | "port": 8000, 4 | "dbtype": "postgres", 5 | "dbconfig": "postgres://boardsuser:boardsuser-password@focalboarddb/boards?sslmode=disable&connect_timeout=10", 6 | "postgres_dbconfig": "dbname=boards sslmode=disable", 7 | "useSSL": false, 8 | "webpath": "./pack", 9 | "filespath": "./files", 10 | "telemetry": true, 11 | "prometheusaddress": ":9092", 12 | "session_expire_time": 2592000, 13 | "session_refresh_time": 18000, 14 | "localOnly": false, 15 | "enableLocalMode": true, 16 | "localModeSocketLocation": "/var/tmp/focalboard_local.socket" 17 | } 18 | -------------------------------------------------------------------------------- /portainer/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/portainer 6 | cp sample.env .env 7 | sed -i "s/portainer.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir data 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | -------------------------------------------------------------------------------- /trilium/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/trilium 6 | cp sample.env .env 7 | sed -i "s/trilium.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir dnote_data 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /shaarli/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/shaarli 6 | cp sample.env .env 7 | sed -i "s/shaarli.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir shaarli_data 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /uptime-kuma/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/uptime-kuma 6 | cp sample.env .env 7 | sed -i "s/uptime.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir data 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /dim/config/config.toml: -------------------------------------------------------------------------------- 1 | enable_ssl = false 2 | port = 8000 3 | cache_dir = '/tmp/streaming_cache' 4 | metadata_dir = '/opt/dim/config/metadata' 5 | quiet_boot = false 6 | disable_auth = false 7 | verbose = false 8 | secret_key = [ 9 | 37, 10 | 173, 11 | 198, 12 | 82, 13 | 141, 14 | 226, 15 | 98, 16 | 249, 17 | 225, 18 | 99, 19 | 83, 20 | 100, 21 | 206, 22 | 32, 23 | 189, 24 | 139, 25 | 75, 26 | 182, 27 | 166, 28 | 150, 29 | 140, 30 | 245, 31 | 196, 32 | 191, 33 | 102, 34 | 118, 35 | 223, 36 | 11, 37 | 157, 38 | 182, 39 | 251, 40 | 107, 41 | ] 42 | enable_hwaccel = true 43 | -------------------------------------------------------------------------------- /freshrss/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/freshrss 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir data 9 | mkdir extensions 10 | ``` 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /codimd/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/codimd 6 | cp sample.env .env 7 | sed -i "s/codimd.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir -p codimd codimddb 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | -------------------------------------------------------------------------------- /photoprism/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/photoprism 6 | mkdir Pictures Storage Import 7 | cp sample.env .env 8 | ``` 9 | 10 | If you want to work with Traefik, 11 | 12 | ``` 13 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 14 | docker-compose logs -f 15 | ``` 16 | 17 | If you want to work with Caddy, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | If you want ot work alone, 25 | 26 | ``` 27 | docker-compose -f docker-compose.yml -f docker-compose.default.yml up -d 28 | docker-compose logs -f 29 | ``` 30 | -------------------------------------------------------------------------------- /postgres/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/postgres 6 | cp sample.env .env 7 | sed -i "s/flame.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Además recuerda cambiar la contraseña. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | -------------------------------------------------------------------------------- /webdav/README.md: -------------------------------------------------------------------------------- 1 | # Servidor webdav partiendo de alpine 2 | 3 | ## Clonar el repositorio 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/webdav 8 | mkdir share 9 | cp sample.env .env 10 | htpasswd -bc htpasswd tu-usuario tu-contraseña 11 | ``` 12 | 13 | Remember to change and for your own credentials 14 | 15 | If you want to work with Traefik, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | If you want to work with Caddy, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | -------------------------------------------------------------------------------- /plausible/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | Modifica `plausible-conf` configurandolo según tus necesidades y propia configuración. Cambia la url, 4 | 5 | ``` 6 | sed -i "s/plausible.tuservidor.com/el_fqdn_que_quieras/g" docker-compose.caddy.yml 7 | sed -i "s/plausible.tuservidor.com/el_fqdn_que_quieras/g" docker-compose.traefik.yml 8 | sed -i "s/plausible.tuservidor.com/el_fqdn_que_quieras/g" plausible-conf.env 9 | ``` 10 | 11 | Levanta el servicio utilizando Traefik, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 15 | ``` 16 | 17 | O levanta el servicio utilizando Caddy, 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | ``` 22 | -------------------------------------------------------------------------------- /standardnotes/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ruby:2.7.4-alpine3.14 2 | 3 | RUN apk add --update --no-cache \ 4 | alpine-sdk \ 5 | nodejs \ 6 | python3 \ 7 | git \ 8 | yarn \ 9 | tzdata 10 | 11 | WORKDIR /app/ 12 | RUN git clone https://github.com/standardnotes/web.git /tmp/ && \ 13 | cp /tmp/package.json \ 14 | /tmp/yarn.lock \ 15 | /tmp/Gemfile \ 16 | /tmp/Gemfile.lock /app/ && \ 17 | yarn install --pure-lockfile && \ 18 | gem install bundler && bundle install && \ 19 | cp -r /tmp/. /app/ && \ 20 | yarn bundle && \ 21 | bundle exec rails assets:precompile 22 | 23 | EXPOSE 3000 24 | 25 | ENTRYPOINT [ "./docker/entrypoint.sh" ] 26 | 27 | CMD [ "start" ] 28 | 29 | -------------------------------------------------------------------------------- /odoo/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | odoo: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.odoo.loadbalancer.server.port=8069 8 | - traefik.http.routers.odoo.entrypoints=web 9 | - traefik.http.routers.odoo.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.odoo-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.odoo.middlewares=odoo-https-redirect 12 | - traefik.http.routers.odoo-secure.entrypoints=websecure 13 | - traefik.http.routers.odoo-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.odoo-secure.tls=true 15 | - traefik.http.routers.odoo-secure.tls.certresolver=letsencrypt 16 | -------------------------------------------------------------------------------- /filebrowser/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/filebrowser 6 | cp sample.env .env 7 | sed -i "s/filebrowser.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | touch filebrowser.db 9 | mkdir srv 10 | ``` 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido *Caddy*, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido *Traefik*, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | -------------------------------------------------------------------------------- /miniflux/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | miniflux: 4 | image: miniflux/miniflux:latest 5 | init: true 6 | restart: unless-stopped 7 | depends_on: 8 | - db 9 | networks: 10 | - proxy 11 | - internal 12 | env_file: 13 | - .env 14 | db: 15 | image: postgres:latest 16 | init: true 17 | restart: unless-stopped 18 | env_file: 19 | - .env 20 | volumes: 21 | - ./postgresql:/var/lib/postgresql/data 22 | networks: 23 | - internal 24 | healthcheck: 25 | test: ["CMD", "pg_isready", "-U", "miniflux"] 26 | interval: 10s 27 | start_period: 30s 28 | 29 | networks: 30 | internal: 31 | proxy: 32 | external: true 33 | -------------------------------------------------------------------------------- /searxng/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | searxng: 5 | image: searxng/searxng:latest 6 | container_name: searxng 7 | init: true 8 | environment: 9 | - SEARXNG_BASE_URL=https://${FQDN:-localhost}/ 10 | restart: unless-stopped 11 | networks: 12 | - proxy 13 | - internal 14 | volumes: 15 | - data:/etc/searxng:rw 16 | 17 | redis: 18 | image: redis:alpine 19 | container_name: redis 20 | init: true 21 | command: redis-server --save "" --appendonly "no" 22 | networks: 23 | - internal 24 | tmpfs: 25 | - /var/lib/redis 26 | 27 | volumes: 28 | data: {} 29 | 30 | networks: 31 | internal: {} 32 | proxy: 33 | external: true 34 | -------------------------------------------------------------------------------- /atuin/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/atauin 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar el resto de parámetros relativos a la autenticación. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /pastebin/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/pastebin 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir db 9 | ``` 10 | 11 | Ten en cuenta la identificación de tu usuario `uid` y `gid`. 12 | 13 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 14 | 15 | ``` 16 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | 20 | Mientras que si has elegido Traefik, 21 | 22 | ``` 23 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 24 | docker-compose logs -f 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /rabbitmq/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/rabbitmq 6 | cp sample.env .env 7 | sed -i "s/mq.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar el resto de parámetros relativos a la autenticación. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /dagu/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | dagu: 3 | image: ghcr.io/dagu-org/dagu:latest 4 | container_name: dagu 5 | restart: unless-stopped 6 | init: true 7 | command: dagu start-all 8 | environment: 9 | DAGU_TZ: Europe/Madrid 10 | DAGU_BASE_PATH: /dagu 11 | DAGU_IS_BASICAUTH: 1 12 | DAGU_BASICAUTH_USERNAME: usuario 13 | DAGU_BASICAUTH_PASSWORD: contraseña 14 | networks: 15 | - proxy 16 | labels: 17 | - traefik.enable=true 18 | - traefik.http.services.dagu.loadbalancer.server.port=8080 19 | - traefik.http.routers.dagu.entrypoints=https 20 | - traefik.http.routers.dagu.rule=Host(`dagu.tuservidor.es`) 21 | 22 | networks: 23 | proxy: 24 | external: true 25 | -------------------------------------------------------------------------------- /flatnotes/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/flatnotes 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar el resto de parámetros relativos a la autenticación. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /searxng/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/flatnotes 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar el resto de parámetros relativos a la autenticación. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /sftpgo/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | sftpgo: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.sftpgo.loadbalancer.server.port=8080 8 | - traefik.http.routers.sftpgo.entrypoints=web 9 | - traefik.http.routers.sftpgo.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.sftpgo-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.sftpgo.middlewares=sftpgo-https-redirect 12 | - traefik.http.routers.sftpgo-secure.entrypoints=websecure 13 | - traefik.http.routers.sftpgo-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.sftpgo-secure.tls=true 15 | - traefik.http.routers.sftpgo-secure.tls.certresolver=letsencrypt 16 | -------------------------------------------------------------------------------- /cloudbeaver/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/cloudbeaver 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar el resto de parámetros relativos a la autenticación. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /ntfy/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/ntfy 6 | cp sample.env .env 7 | sed -i "s/ntfy.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir dnote_data 9 | ``` 10 | 11 | También tienes que cambiar la dirección url en el archivo `etc/server.yml` 12 | 13 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 14 | 15 | ``` 16 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | 20 | Mientras que si has elegido Traefik, 21 | 22 | ``` 23 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 24 | docker-compose logs -f 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /odoo/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [odoo](https://github.com/odoo/odoo) 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/odoo 8 | cp sample.env .env 9 | sed -i "s/odoo.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir data 11 | ``` 12 | 13 | Además recuerda cambiar la contraseña. 14 | 15 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | Mientras que si has elegido Traefik, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | -------------------------------------------------------------------------------- /traefik/conf/test.yml: -------------------------------------------------------------------------------- 1 | http: 2 | # Add the router 3 | routers: 4 | router0: 5 | entryPoints: 6 | - https 7 | service: prueba1 8 | rule: Host(`prueba1.tusitio.es`) 9 | tls: 10 | certResolver: myresolver 11 | router1: 12 | entryPoints: 13 | - https 14 | service: prueba2 15 | rule: Host(`prueba2.tusitio.es`) 16 | tls: 17 | certResolver: myresolver 18 | 19 | # Add the service 20 | services: 21 | prueba1: 22 | loadBalancer: 23 | servers: 24 | - url: https://otrositio.es 25 | passHostHeader: false 26 | prueba2: 27 | loadBalancer: 28 | servers: 29 | - url: http://otrositiomas.es 30 | passHostHeader: false 31 | -------------------------------------------------------------------------------- /nextcloud/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | web: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.nextcloud.loadbalancer.server.port=80 8 | - traefik.http.routers.nextcloud.entrypoints=web 9 | - traefik.http.routers.nextcloud.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.nextcloud-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.nextcloud.middlewares=nextcloud-https-redirect 12 | - traefik.http.routers.nextcloud-secure.entrypoints=websecure 13 | - traefik.http.routers.nextcloud-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.nextcloud-secure.tls=true 15 | - traefik.http.routers.nextcloud-secure.tls.certresolver=letsencrypt 16 | -------------------------------------------------------------------------------- /bookstack/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/bookstack 6 | cp sample.env .env 7 | sed -i "s/bookstack.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir config 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | Default credentials: 26 | 27 | * username: admin@admin.com 28 | * password: password 29 | -------------------------------------------------------------------------------- /openobserve/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [odoo](https://github.com/odoo/odoo) 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/openobserve 8 | cp sample.env .env 9 | ``` 10 | 11 | Edita el archivo `.env` que acabas de copiar y reemplaza el `fqdn` y los credenciales por los que tu quieras utilizar. 12 | 13 | 14 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 15 | 16 | ``` 17 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 18 | docker-compose logs -f 19 | ``` 20 | 21 | Mientras que si has elegido Traefik, 22 | 23 | ``` 24 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 25 | docker-compose logs -f 26 | ``` 27 | -------------------------------------------------------------------------------- /semaphore/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | semaphore: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.semaphore.loadbalancer.server.port=5005 8 | - traefik.http.routers.semaphore.entrypoints=web 9 | - traefik.http.routers.semaphore.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.semaphore-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.semaphore.middlewares=semaphore-https-redirect 12 | - traefik.http.routers.semaphore-secure.entrypoints=websecure 13 | - traefik.http.routers.semaphore-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.semaphore-secure.tls=true 15 | - traefik.http.routers.semaphore-secure.tls.certresolver=letsencrypt 16 | -------------------------------------------------------------------------------- /wordpress/force-backup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -o allexport 4 | source .env 5 | set +o allexport 6 | 7 | docker run --rm \ 8 | --init \ 9 | --volumes-from "${ROUTER}-backup" \ 10 | --network "${ROUTER-internal}" \ 11 | -e MARIADB_DB="${WORDPRESS_DB_NAME}" \ 12 | -e MARIADB_HOST="${WORDPRESS_DB_HOST}" \ 13 | -e MARIADB_USER="${WORDPRESS_DB_USER}" \ 14 | -e MARIADB_PASSWORD="${WORDPRESS_DB_PASSWORD}" \ 15 | -e BACKUP_KEEP_MINS="${BACKUP_KEEP_MINS}" \ 16 | -e BACKUP_KEEP_DAYS="${BACKUP_KEEP_DAYS}" \ 17 | -e BACKUP_KEEP_WEEKS="${BACKUP_KEEP_WEEKS}" \ 18 | -e BACKUP_KEEP_MONTHS="${BACKUP_KEEP_MONTHS}" \ 19 | atareao/mariadb-backup /backup.sh 20 | -------------------------------------------------------------------------------- /yacht/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/yacht 6 | cp sample.env .env 7 | sed -i "s/yacht.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir yacht 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | Las credenciales por defecto son, 26 | 27 | ``` 28 | usuario: admin@yacht.local 29 | password: pass 30 | ``` 31 | -------------------------------------------------------------------------------- /wallabag/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | services: 3 | wallabag: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.routers.wallabag.entrypoints=web 9 | - traefik.http.routers.wallabag.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.wallabag-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.wallabag.middlewares=wallabag-https-redirect 12 | - traefik.http.routers.wallabag-secure.entrypoints=websecure 13 | - traefik.http.routers.wallabag-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.wallabag-secure.tls=true 15 | - traefik.http.routers.wallabag-secure.tls.certresolver=letsencrypt 16 | 17 | networks: 18 | proxy: 19 | external: true 20 | -------------------------------------------------------------------------------- /nextcloud/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/nextcloud 6 | cp sample.env .env 7 | sed -i "s/nextcloud.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Tendrás que modificar los parámetros que vienen en el archivo `.env`, para personalizar las contraseñas, y el resto de valores. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | -------------------------------------------------------------------------------- /focalboard/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | focalboard: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.focalboard.loadbalancer.server.port=${VIRTUAL_PORT} 8 | - traefik.http.routers.focalboard.entrypoints=web 9 | - traefik.http.routers.focalboard.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.focalboard-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.focalboard.middlewares=focalboard-https-redirect 12 | - traefik.http.routers.focalboard-secure.entrypoints=websecure 13 | - traefik.http.routers.focalboard-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.focalboard-secure.tls=true 15 | - traefik.http.routers.focalboard-secure.tls.certresolver=letsencrypt 16 | -------------------------------------------------------------------------------- /dim/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3-7' 2 | 3 | services: 4 | dim: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.dim.loadbalancer.server.port=8000 10 | - traefik.http.routers.dim.entrypoints=web 11 | - traefik.http.routers.dim.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.dim-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.dim.middlewares=dim-https-redirect 14 | - traefik.http.routers.dim-secure.entrypoints=websecure 15 | - traefik.http.routers.dim-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.dim-secure.tls=true 17 | - traefik.http.routers.dim-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /immich/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/immich 6 | cp sample.env .env 7 | sed -i "s/immich.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Crea un valor para `JWT_SECRET`, para ello, tienes que utilizar el siguiente comando, 11 | 12 | ``` 13 | openssl rand -base64 128 14 | ``` 15 | 16 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 17 | 18 | ``` 19 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 20 | docker-compose logs -f 21 | ``` 22 | 23 | Mientras que si has elegido Traefik, 24 | 25 | ``` 26 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 27 | docker-compose logs -f 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /kanboard/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/kanboard 6 | cp sample.env .env 7 | sed -i "s/kanboard.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir kanboard_data kanboard_plugins 9 | ``` 10 | 11 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 12 | 13 | ``` 14 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 15 | docker-compose logs -f 16 | ``` 17 | 18 | Mientras que si has elegido Traefik, 19 | 20 | ``` 21 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 22 | docker-compose logs -f 23 | ``` 24 | 25 | Una vez levantado las credenciales son: 26 | 27 | * username: admin 28 | * password: admin 29 | 30 | -------------------------------------------------------------------------------- /silverbullet/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | silverbullet: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.silverbullet.loadbalancer.server.port=3000 8 | - traefik.http.routers.silverbullet.entrypoints=http 9 | - traefik.http.routers.silverbullet.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.silverbullet-https-redirect.redirectscheme.scheme=https 11 | - traefik.http.routers.silverbullet.middlewares=silverbullet-https-redirect 12 | - traefik.http.routers.silverbullet-secure.entrypoints=https 13 | - traefik.http.routers.silverbullet-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.silverbullet-secure.tls=true 15 | - traefik.http.routers.silverbullet-secure.tls.certresolver=myresolver 16 | -------------------------------------------------------------------------------- /traefik/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | Prerequisites, 4 | 5 | ```bash 6 | sudo apt install apache2-utils 7 | ``` 8 | 9 | ``` 10 | git clone https://github.com/atareao/self-hosted.git 11 | cd self-hosted/traefik 12 | ``` 13 | 14 | Change `FQDN` for your server in `.env`, 15 | 16 | ```bash 17 | cp sample.env .env 18 | ``` 19 | 20 | Change permissions for `acme.json`, 21 | 22 | ```bash 23 | chmod 600 ./config/acme.json 24 | ``` 25 | 26 | Generate credentials for your user, 27 | 28 | ```bash 29 | htpasswd -nb usuario contraseña >> config/users.txt 30 | ``` 31 | 32 | Change the email for letsencrypt, 33 | 34 | ```bash 35 | sed -i "s/tu@correo.es//g" config/traefik.yml 36 | ``` 37 | 38 | ```bash 39 | docker network create proxy 40 | docker-compose up -d 41 | docker-compose logs -f 42 | ``` 43 | -------------------------------------------------------------------------------- /picoshare/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/picoshare 6 | cp sample.env .env 7 | sed -i "s/dnote.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | También deberías cambiar `PS_SHARED_SECRET` para que solo tu sepas la contraseña con la que acceder a este servidor para subir tus archivos. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /laverna/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/laverga 6 | cp sample.env .env 7 | sed -i "s/laverga.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir laverga_data 9 | ``` 10 | 11 | El siguiente paso es crear un usuario. Para esto tienes un sencillo script que te permitirá hacerlo `bash ./create_user.sh` 12 | 13 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 14 | 15 | ``` 16 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | 20 | Mientras que si has elegido Traefik, 21 | 22 | ``` 23 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 24 | docker-compose logs -f 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /ntfy/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | ntfy: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.ntfy.loadbalancer.server.port=80 10 | - traefik.http.routers.ntfy.entrypoints=web 11 | - traefik.http.routers.ntfy.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.ntfy-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.ntfy.middlewares=ntfy-https-redirect 14 | - traefik.http.routers.ntfy-secure.entrypoints=websecure 15 | - traefik.http.routers.ntfy-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.ntfy-secure.tls=true 17 | - traefik.http.routers.ntfy-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /plausible/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.3" 2 | services: 3 | plausible: 4 | labels: 5 | - traefik.enable=true 6 | - traefik.http.services.plausible.loadbalancer.server.port=8000 7 | - traefik.http.routers.plausible.entrypoints=web 8 | - traefik.http.routers.plausible.rule=Host(`plausible.tuservidor.es`) 9 | - traefik.http.middlewares.plausible-https-redirect.redirectscheme.scheme=websecure 10 | - traefik.http.routers.plausible.middlewares=plausible-https-redirect 11 | - traefik.http.routers.plausible-secure.entrypoints=websecure 12 | - traefik.http.routers.plausible-secure.rule=Host(`plausible.tuservidor.es`) 13 | - traefik.http.routers.plausible-secure.tls=true 14 | - traefik.http.routers.plausible-secure.tls.certresolver=letsencrypt 15 | 16 | -------------------------------------------------------------------------------- /nginx/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | nginx: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.nginx.loadbalancer.server.port=8080 9 | - traefik.http.routers.nginx.entrypoints=web 10 | - traefik.http.routers.nginx.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.nginx-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.nginx.middlewares=nginx-https-redirect 13 | - traefik.http.routers.nginx-secure.entrypoints=websecure 14 | - traefik.http.routers.nginx-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.nginx-secure.tls=true 16 | - traefik.http.routers.nginx-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /wikijs/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | wikijs: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.wikijs.loadbalancer.server.port=${PORT} 8 | - traefik.http.routers.wikijs.entrypoints=http 9 | - traefik.http.routers.wikijs.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.wikijs-https-redirect.redirectscheme.scheme=https 11 | - traefik.http.routers.wikijs.middlewares=wikijs-https-redirect 12 | - traefik.http.routers.wikijs-secure.entrypoints=https 13 | - traefik.http.routers.wikijs-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.wikijs-secure.tls=true 15 | - traefik.http.routers.wikijs-secure.tls.certresolver=myresolver 16 | 17 | networks: 18 | internal: 19 | proxy: 20 | external: true 21 | 22 | -------------------------------------------------------------------------------- /homer/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | homer: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.homer.loadbalancer.server.port=8080 9 | - traefik.http.routers.homer.entrypoints=web 10 | - traefik.http.routers.homer.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.homer-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.homer.middlewares=homer-https-redirect 13 | - traefik.http.routers.homer-secure.entrypoints=websecure 14 | - traefik.http.routers.homer-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.homer-secure.tls=true 16 | - traefik.http.routers.homer-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /wallabag/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Wallabag](https://github.com/wallabag/wallabag) es un servicio para guardar artículos y leerlos más tarde en formato de texto (read it later). 4 | 5 | ``` 6 | cp sample.env .env 7 | sed -i "s/wallabag.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | sed -i "s/Tu Servidor Linux/el nombre que quieras/g" .env 9 | mkdir images data 10 | docker-compose up -d 11 | ``` 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | -------------------------------------------------------------------------------- /atuin/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | atuin: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.atuin.loadbalancer.server.port=8888 10 | - traefik.http.routers.atuin.entrypoints=web 11 | - traefik.http.routers.atuin.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.atuin-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.atuin.middlewares=atuin-https-redirect 14 | - traefik.http.routers.atuin-secure.entrypoints=websecure 15 | - traefik.http.routers.atuin-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.atuin-secure.tls=true 17 | - traefik.http.routers.atuin-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /dnote/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | dnote: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.dnote.loadbalancer.server.port=3000 10 | - traefik.http.routers.dnote.entrypoints=web 11 | - traefik.http.routers.dnote.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.dnote-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.dnote.middlewares=dnote-https-redirect 14 | - traefik.http.routers.dnote-secure.entrypoints=websecure 15 | - traefik.http.routers.dnote-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.dnote-secure.tls=true 17 | - traefik.http.routers.dnote-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /flame/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | flame: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.flame.loadbalancer.server.port=5005 10 | - traefik.http.routers.flame.entrypoints=web 11 | - traefik.http.routers.flame.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.flame-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.flame.middlewares=flame-https-redirect 14 | - traefik.http.routers.flame-secure.entrypoints=websecure 15 | - traefik.http.routers.flame-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.flame-secure.tls=true 17 | - traefik.http.routers.flame-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /openobserve/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | openobserve: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.dockerobserve.loadbalancer.server.port=5080 8 | - traefik.http.routers.dockerobserve.entrypoints=http 9 | - traefik.http.routers.dockerobserve.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.dockerobserve-https-redirect.redirectscheme.scheme=https 11 | - traefik.http.routers.dockerobserve.middlewares=dockerobserve-https-redirect 12 | - traefik.http.routers.dockerobserve-secure.entrypoints=https 13 | - traefik.http.routers.dockerobserve-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.dockerobserve-secure.tls=true 15 | - traefik.http.routers.dockerobserve-secure.tls.certresolver=myresolver 16 | 17 | 18 | -------------------------------------------------------------------------------- /yacht/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | yacht: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.yacht.loadbalancer.server.port=3000 10 | - traefik.http.routers.yacht.entrypoints=web 11 | - traefik.http.routers.yacht.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.yacht-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.yacht.middlewares=yacht-https-redirect 14 | - traefik.http.routers.yacht-secure.entrypoints=websecure 15 | - traefik.http.routers.yacht-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.yacht-secure.tls=true 17 | - traefik.http.routers.yacht-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /zincsearch/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | zinc: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.zinc.loadbalancer.server.port=4080 10 | - traefik.http.routers.zinc.entrypoints=web 11 | - traefik.http.routers.zinc.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.zinc-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.zinc.middlewares=zinc-https-redirect 14 | - traefik.http.routers.zinc-secure.entrypoints=websecure 15 | - traefik.http.routers.zinc-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.zinc-secure.tls=true 17 | - traefik.http.routers.zinc-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /focalboard/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | focalboard: 5 | image: mattermost/focalboard 6 | container_name: focalboard 7 | depends_on: 8 | - focalboarddb 9 | env_file: 10 | - .env 11 | volumes: 12 | - ./config.json:/opt/focalboard/config.json 13 | - focalboard:/opt/focalboard/files 14 | restart: always 15 | networks: 16 | - internal 17 | - proxy 18 | 19 | focalboarddb: 20 | image: postgres:latest 21 | container_name: focalboarddb 22 | restart: always 23 | volumes: 24 | - focalboarddb:/var/lib/postgresql/data 25 | env_file: 26 | - .env 27 | networks: 28 | - internal 29 | 30 | volumes: 31 | focalboard: {} 32 | focalboarddb: {} 33 | 34 | networks: 35 | internal: 36 | proxy: 37 | external: true 38 | -------------------------------------------------------------------------------- /ghost/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.1' 2 | 3 | services: 4 | 5 | ghost: 6 | networks: 7 | - proxy 8 | labels: 9 | - traefik.enable=true 10 | - traefik.http.services.ghost.loadbalancer.server.port=2368 11 | - traefik.http.routers.ghost.entrypoints=web 12 | - traefik.http.routers.ghost.rule=Host(`${FQDN}`) 13 | - traefik.http.middlewares.ghost-https-redirect.redirectscheme.scheme=websecure 14 | - traefik.http.routers.ghost.middlewares=ghost-https-redirect 15 | - traefik.http.routers.ghost-secure.entrypoints=websecure 16 | - traefik.http.routers.ghost-secure.rule=Host(`${FQDN}`) 17 | - traefik.http.routers.ghost-secure.tls=true 18 | - traefik.http.routers.ghost-secure.tls.certresolver=letsencrypt 19 | 20 | networks: 21 | proxy: 22 | external: true 23 | -------------------------------------------------------------------------------- /webdav/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | webdav: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.webdav.loadbalancer.server.port=8080 9 | - traefik.http.routers.webdav.entrypoints=web 10 | - traefik.http.routers.webdav.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.webdav-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.webdav.middlewares=webdav-https-redirect 13 | - traefik.http.routers.webdav-secure.entrypoints=websecure 14 | - traefik.http.routers.webdav-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.webdav-secure.tls=true 16 | - traefik.http.routers.webdav-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /dozzle/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | dozzle: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.dozzle.loadbalancer.server.port=8080 10 | - traefik.http.routers.dozzle.entrypoints=web 11 | - traefik.http.routers.dozzle.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.dozzle-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.dozzle.middlewares=dozzle-https-redirect 14 | - traefik.http.routers.dozzle-secure.entrypoints=websecure 15 | - traefik.http.routers.dozzle-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.dozzle-secure.tls=true 17 | - traefik.http.routers.dozzle-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /huginn/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | huginn: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.huginn.loadbalancer.server.port=3000 10 | - traefik.http.routers.huginn.entrypoints=web 11 | - traefik.http.routers.huginn.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.huginn-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.huginn.middlewares=huginn-https-redirect 14 | - traefik.http.routers.huginn-secure.entrypoints=websecure 15 | - traefik.http.routers.huginn-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.huginn-secure.tls=true 17 | - traefik.http.routers.huginn-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /logseq/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | logseq: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.logseq.loadbalancer.server.port=80 10 | - traefik.http.routers.logseq.entrypoints=http 11 | - traefik.http.routers.logseq.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.logseq-https-redirect.redirectscheme.scheme=https 13 | - traefik.http.routers.logseq.middlewares=logseq-https-redirect 14 | - traefik.http.routers.logseq-secure.entrypoints=https 15 | - traefik.http.routers.logseq-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.logseq-secure.tls=true 17 | - traefik.http.routers.logseq-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /metube/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | metube: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.metube.loadbalancer.server.port=8081 10 | - traefik.http.routers.metube.entrypoints=web 11 | - traefik.http.routers.metube.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.metube-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.metube.middlewares=metube-https-redirect 14 | - traefik.http.routers.metube-secure.entrypoints=websecure 15 | - traefik.http.routers.metube-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.metube-secure.tls=true 17 | - traefik.http.routers.metube-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /nitter/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | nitter: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.nitter.loadbalancer.server.port=8080 10 | - traefik.http.routers.nitter.entrypoints=web 11 | - traefik.http.routers.nitter.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.nitter-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.nitter.middlewares=nitter-https-redirect 14 | - traefik.http.routers.nitter-secure.entrypoints=websecure 15 | - traefik.http.routers.nitter-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.nitter-secure.tls=true 17 | - traefik.http.routers.nitter-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /planka/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | planka: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.planka.loadbalancer.server.port=1337 10 | - traefik.http.routers.planka.entrypoints=web 11 | - traefik.http.routers.planka.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.planka-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.planka.middlewares=planka-https-redirect 14 | - traefik.http.routers.planka-secure.entrypoints=websecure 15 | - traefik.http.routers.planka-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.planka-secure.tls=true 17 | - traefik.http.routers.planka-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /snibox/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | snibox: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.snibox.loadbalancer.server.port=80 10 | - traefik.http.routers.snibox.entrypoints=web 11 | - traefik.http.routers.snibox.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.snibox-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.snibox.middlewares=snibox-https-redirect 14 | - traefik.http.routers.snibox-secure.entrypoints=websecure 15 | - traefik.http.routers.snibox-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.snibox-secure.tls=true 17 | - traefik.http.routers.snibox-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /codimd/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | codimd: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.codimd.loadbalancer.server.port=3000 10 | - traefik.http.routers.codimd.entrypoints=web 11 | - traefik.http.routers.codimd.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.codimd-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.codimd.middlewares=codimd-https-redirect 14 | - traefik.http.routers.codimd-secure.entrypoints=websecure 15 | - traefik.http.routers.codimd-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.codimd-secure.tls=true 17 | - traefik.http.routers.codimd-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /immich/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | immich-proxy: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.immich.loadbalancer.server.port=8080 10 | - traefik.http.routers.immich.entrypoints=web 11 | - traefik.http.routers.immich.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.immich-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.immich.middlewares=immich-https-redirect 14 | - traefik.http.routers.immich-secure.entrypoints=websecure 15 | - traefik.http.routers.immich-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.immich-secure.tls=true 17 | - traefik.http.routers.immich-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /dasherr/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | services: 3 | dasherr: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.dasherr.loadbalancer.server.port=8080 9 | - traefik.http.routers.dasherr.entrypoints=web 10 | - traefik.http.routers.dasherr.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.dasherr-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.dasherr.middlewares=dasherr-https-redirect 13 | - traefik.http.routers.dasherr-secure.entrypoints=websecure 14 | - traefik.http.routers.dasherr-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.dasherr-secure.tls=true 16 | - traefik.http.routers.dasherr-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /laverna/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | laverna: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.laverna.loadbalancer.server.port=8080 10 | - traefik.http.routers.laverna.entrypoints=web 11 | - traefik.http.routers.laverna.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.laverna-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.laverna.middlewares=laverna-https-redirect 14 | - traefik.http.routers.laverna-secure.entrypoints=websecure 15 | - traefik.http.routers.laverna-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.laverna-secure.tls=true 17 | - traefik.http.routers.laverna-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /postgres/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | pgadmin: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.pgadmin.loadbalancer.server.port=80 10 | - traefik.http.routers.pgadmin.entrypoints=web 11 | - traefik.http.routers.pgadmin.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.pgadmin-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.pgadmin.middlewares=pgadmin-https-redirect 14 | - traefik.http.routers.pgadmin-secure.entrypoints=websecure 15 | - traefik.http.routers.pgadmin-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.pgadmin-secure.tls=true 17 | - traefik.http.routers.pgadmin-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /searxng/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | searxng: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.searxng.loadbalancer.server.port=8080 10 | - traefik.http.routers.searxng.entrypoints=web 11 | - traefik.http.routers.searxng.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.searxng-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.searxng.middlewares=searxng-https-redirect 14 | - traefik.http.routers.searxng-secure.entrypoints=websecure 15 | - traefik.http.routers.searxng-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.searxng-secure.tls=true 17 | - traefik.http.routers.searxng-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /shaarli/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | shaarli: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.shaarli.loadbalancer.server.port=80 10 | - traefik.http.routers.shaarli.entrypoints=web 11 | - traefik.http.routers.shaarli.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.shaarli-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.shaarli.middlewares=shaarli-https-redirect 14 | - traefik.http.routers.shaarli-secure.entrypoints=websecure 15 | - traefik.http.routers.shaarli-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.shaarli-secure.tls=true 17 | - traefik.http.routers.shaarli-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /trilium/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | trilium: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.trilium.loadbalancer.server.port=8080 10 | - traefik.http.routers.trilium.entrypoints=web 11 | - traefik.http.routers.trilium.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.trilium-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.trilium.middlewares=trilium-https-redirect 14 | - traefik.http.routers.trilium-secure.entrypoints=websecure 15 | - traefik.http.routers.trilium-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.trilium-secure.tls=true 17 | - traefik.http.routers.trilium-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /freshrss/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | freshrss: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.freshrss.loadbalancer.server.port=80 9 | - traefik.http.routers.freshrss.entrypoints=web 10 | - traefik.http.routers.freshrss.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.freshrss-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.freshrss.middlewares=freshrss-https-redirect 13 | - traefik.http.routers.freshrss-secure.entrypoints=websecure 14 | - traefik.http.routers.freshrss-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.freshrss-secure.tls=true 16 | - traefik.http.routers.freshrss-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /snibox/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/snibox 6 | cp sample.env .env 7 | sed -i "s/snibox.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Cambia la clave que se encuentra en el archivo `.env` si quieres, y sino poner en funcionamiento. 11 | 12 | Nada mas terminar tienes que ejecutar `./bin/setup` antes de levantar el servicio. 13 | 14 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 15 | 16 | ``` 17 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 18 | docker-compose logs -f 19 | ``` 20 | 21 | Mientras que si has elegido Traefik, 22 | 23 | ``` 24 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 25 | docker-compose logs -f 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /jellyfin/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | jellyfin: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.jellyfin.loadbalancer.server.port=8096 9 | - traefik.http.routers.jellyfin.entrypoints=web 10 | - traefik.http.routers.jellyfin.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.jellyfin-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.jellyfin.middlewares=jellyfin-https-redirect 13 | - traefik.http.routers.jellyfin-secure.entrypoints=websecure 14 | - traefik.http.routers.jellyfin-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.jellyfin-secure.tls=true 16 | - traefik.http.routers.jellyfin-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /kanboard/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | kanboard: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.kanboard.loadbalancer.server.port=80 10 | - traefik.http.routers.kanboard.entrypoints=web 11 | - traefik.http.routers.kanboard.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.kanboard-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.kanboard.middlewares=kanboard-https-redirect 14 | - traefik.http.routers.kanboard-secure.entrypoints=websecure 15 | - traefik.http.routers.kanboard-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.kanboard-secure.tls=true 17 | - traefik.http.routers.kanboard-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /zincsearch/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/zinc 6 | cp sample.env .env 7 | sed -i "s/zinc.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Si modificas las credenciales y quieres utilizar el archivo sample.http, necesitas cambiar el TOKEN. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | 15 | ``` 16 | echo -n admin:Compolexpass#123 | base64 17 | ``` 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | Mientras que si has elegido Traefik, 25 | 26 | ``` 27 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 28 | docker-compose logs -f 29 | ``` 30 | -------------------------------------------------------------------------------- /homepage/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | homepage: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.homepage.loadbalancer.server.port=3000 10 | - traefik.http.routers.homepage.entrypoints=web 11 | - traefik.http.routers.homepage.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.homepage-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.homepage.middlewares=homepage-https-redirect 14 | - traefik.http.routers.homepage-secure.entrypoints=websecure 15 | - traefik.http.routers.homepage-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.homepage-secure.tls=true 17 | - traefik.http.routers.homepage-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /miniflux/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | miniflux: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.routers.miniflux.entrypoints=web 10 | - traefik.http.services.miniflux.loadbalancer.server.port=8080 11 | - traefik.http.routers.miniflux.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.miniflux-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.miniflux.middlewares=miniflux-https-redirect 14 | - traefik.http.routers.miniflux-secure.entrypoints=websecure 15 | - traefik.http.routers.miniflux-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.miniflux-secure.tls=true 17 | - traefik.http.routers.miniflux-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /pastebin/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | pastebin: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.pastebin.loadbalancer.server.port=8081 10 | - traefik.http.routers.pastebin.entrypoints=web 11 | - traefik.http.routers.pastebin.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.pastebin-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.pastebin.middlewares=pastebin-https-redirect 14 | - traefik.http.routers.pastebin-secure.entrypoints=websecure 15 | - traefik.http.routers.pastebin-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.pastebin-secure.tls=true 17 | - traefik.http.routers.pastebin-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /postgres/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | postgres: 5 | container_name: postgres 6 | image: postgres:latest 7 | restart: always 8 | environment: 9 | - POSTGRES_USER 10 | - POSTGRES_PASSWORD 11 | - POSTGRES_DB 12 | volumes: 13 | - postgres_data:/var/lib/postgresql/data 14 | logging: 15 | driver: journald 16 | networks: 17 | - internal 18 | 19 | pgadmin: 20 | container_name: pgadmin4 21 | image: dpage/pgadmin4 22 | restart: always 23 | environment: 24 | - PGADMIN_DEFAULT_EMAIL 25 | - PGADMIN_DEFAULT_PASSWORD 26 | volumes: 27 | - pgadmin:/var/lib/pgadmin 28 | logging: 29 | driver: journald 30 | networks: 31 | - internal 32 | 33 | volumes: 34 | postgres_data: {} 35 | pgadmin: {} 36 | 37 | networks: 38 | internal: 39 | -------------------------------------------------------------------------------- /rabbitmq/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | rabbitmq: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.rabbitmq.loadbalancer.server.port=15672 10 | - traefik.http.routers.rabbitmq.entrypoints=web 11 | - traefik.http.routers.rabbitmq.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.rabbitmq-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.rabbitmq.middlewares=rabbitmq-https-redirect 14 | - traefik.http.routers.rabbitmq-secure.entrypoints=websecure 15 | - traefik.http.routers.rabbitmq-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.rabbitmq-secure.tls=true 17 | - traefik.http.routers.rabbitmq-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /bookstack/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | bookstack: 4 | networks: 5 | - proxy 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.bookstack.loadbalancer.server.port=80 9 | - traefik.http.routers.bookstack.entrypoints=web 10 | - traefik.http.routers.bookstack.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.bookstack-https-redirect.redirectscheme.scheme=websecure 12 | - traefik.http.routers.bookstack.middlewares=bookstack-https-redirect 13 | - traefik.http.routers.bookstack-secure.entrypoints=websecure 14 | - traefik.http.routers.bookstack-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.bookstack-secure.tls=true 16 | - traefik.http.routers.bookstack-secure.tls.certresolver=letsencrypt 17 | 18 | networks: 19 | proxy: 20 | external: true 21 | -------------------------------------------------------------------------------- /firefly/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.3' 2 | 3 | services: 4 | 5 | fireflyiii: 6 | networks: 7 | - proxy 8 | labels: 9 | - traefik.enable=true 10 | - traefik.http.services.firefly.loadbalancer.server.port=8080 11 | - traefik.http.routers.firefly.entrypoints=web 12 | - traefik.http.routers.firefly.rule=Host(`${APP_URL}`) 13 | - traefik.http.middlewares.firefly-https-redirect.redirectscheme.scheme=websecure 14 | - traefik.http.routers.firefly.middlewares=firefly-https-redirect 15 | - traefik.http.routers.firefly-secure.entrypoints=websecure 16 | - traefik.http.routers.firefly-secure.rule=Host(`${APP_URL}`) 17 | - traefik.http.routers.firefly-secure.tls=true 18 | - traefik.http.routers.firefly-secure.tls.certresolver=letsencrypt 19 | 20 | networks: 21 | proxy: 22 | external: true 23 | -------------------------------------------------------------------------------- /pastebin/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rustlang/rust:nightly as builder 2 | 3 | RUN apt-get update --quiet && \ 4 | apt-get install --yes --quiet --no-install-recommends\ 5 | apt-utils \ 6 | software-properties-common \ 7 | lsb-release &&\ 8 | rm -rf /var/lib/apt/lists/* && \ 9 | bash -c "$(wget --show-progress -O - https://apt.llvm.org/llvm.sh)" 10 | 11 | WORKDIR /rs 12 | RUN git clone https://github.com/mkaczanowski/pastebin.git . && \ 13 | cargo build --release 14 | 15 | FROM debian:buster-slim 16 | RUN apt-get update --quiet && \ 17 | apt-get install --quiet --yes --no-install-recommends \ 18 | gosu && \ 19 | rm -rf /var/lib/apt/lists/* && \ 20 | mkdir -p /rs/db 21 | COPY --from=builder /rs/target/release/pastebin /rs/pastebin 22 | COPY entrypoint.sh /rs/entrypoint.sh 23 | WORKDIR /rs 24 | 25 | CMD ["/bin/sh", "/rs/entrypoint.sh"] 26 | -------------------------------------------------------------------------------- /zincsearch/sample.http: -------------------------------------------------------------------------------- 1 | GET https://{{FQDN}}/api/index 2 | Accept: application/json 3 | Authorization: Basic {{TOKEN}} 4 | 5 | GET https://{{FQDN}}/api/index/minidice 6 | Accept: application/json 7 | Authorization: Basic {{TOKEN}} 8 | 9 | GET https://{{FQDN}}/api/minidice/_mapping 10 | Accept: application/json 11 | Authorization: Basic {{TOKEN}} 12 | 13 | GET https://{{FQDN}}/api/minidice/_settings 14 | Accept: application/json 15 | Authorization: Basic {{TOKEN}} 16 | 17 | POST https://{{FQDN}}/api/minidice/_search 18 | Accept: application/json 19 | Authorization: Basic {{TOKEN}} 20 | Content-Type: application/json 21 | 22 | { 23 | "search_type": "match", 24 | "query": { 25 | "term": "Sharma", 26 | "start_time": "2020-06-02T14:28:31.894Z", 27 | "end_time": "2023-12-02T15:28:31.894Z" 28 | }, 29 | "_source": [] 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /chevereto/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | chevereto: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.chevereto.loadbalancer.server.port=80 10 | - traefik.http.routers.chevereto.entrypoints=web 11 | - traefik.http.routers.chevereto.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.chevereto-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.chevereto.middlewares=chevereto-https-redirect 14 | - traefik.http.routers.chevereto-secure.entrypoints=websecure 15 | - traefik.http.routers.chevereto-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.chevereto-secure.tls=true 17 | - traefik.http.routers.chevereto-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /dim/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Flame](https://github.com/pawelmalak/flame) es un software para crear una "página de inicio" con enlaces a nuestras aplicaciones web y sitios web favoritos. 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/flame 8 | cp sample.env .env 9 | sed -i "s/flame.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir data 11 | ``` 12 | 13 | Además recuerda cambiar la contraseña. 14 | 15 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | Mientras que si has elegido Traefik, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | -------------------------------------------------------------------------------- /flame/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Flame](https://github.com/pawelmalak/flame) es un software para crear una "página de inicio" con enlaces a nuestras aplicaciones web y sitios web favoritos. 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/flame 8 | cp sample.env .env 9 | sed -i "s/flame.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir data 11 | ``` 12 | 13 | Además recuerda cambiar la contraseña. 14 | 15 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | Mientras que si has elegido Traefik, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | -------------------------------------------------------------------------------- /flatnotes/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | flatnotes: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.flatnotes.loadbalancer.server.port=3000 10 | - traefik.http.routers.flatnotes.entrypoints=web 11 | - traefik.http.routers.flatnotes.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.flatnotes-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.flatnotes.middlewares=flatnotes-https-redirect 14 | - traefik.http.routers.flatnotes-secure.entrypoints=websecure 15 | - traefik.http.routers.flatnotes-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.flatnotes-secure.tls=true 17 | - traefik.http.routers.flatnotes-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | 5 | grafana: 6 | labels: 7 | - traefik.enable=true 8 | - traefik.http.services.grafana.loadbalancer.server.port=3000 9 | - traefik.http.routers.grafana.entrypoints=http 10 | - traefik.http.routers.grafana.rule=Host(`${FQDN}`) 11 | - traefik.http.middlewares.grafana-https-redirect.redirectscheme.scheme=https 12 | - traefik.http.routers.grafana.middlewares=grafana-https-redirect 13 | - traefik.http.routers.grafana-secure.entrypoints=https 14 | - traefik.http.routers.grafana-secure.rule=Host(`${FQDN}`) 15 | - traefik.http.routers.grafana-secure.tls=true 16 | - traefik.http.routers.grafana-secure.tls.certresolver=myresolver 17 | networks: 18 | - proxy 19 | 20 | networks: 21 | proxy: 22 | external: true 23 | 24 | -------------------------------------------------------------------------------- /invidious/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | invidious: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.invidious.loadbalancer.server.port=3000 10 | - traefik.http.routers.invidious.entrypoints=web 11 | - traefik.http.routers.invidious.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.invidious-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.invidious.middlewares=invidious-https-redirect 14 | - traefik.http.routers.invidious-secure.entrypoints=websecure 15 | - traefik.http.routers.invidious-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.invidious-secure.tls=true 17 | - traefik.http.routers.invidious-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /navidrome/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | navidrome: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.navidrome.loadbalancer.server.port=4533 10 | - traefik.http.routers.navidrome.entrypoints=web 11 | - traefik.http.routers.navidrome.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.navidrome-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.navidrome.middlewares=navidrome-https-redirect 14 | - traefik.http.routers.navidrome-secure.entrypoints=websecure 15 | - traefik.http.routers.navidrome-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.navidrome-secure.tls=true 17 | - traefik.http.routers.navidrome-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /zincobserve/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/zincobserve 6 | cp sample.env .env 7 | sed -i "s/zincobserve.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Si modificas las credenciales y quieres utilizar el archivo sample.http, necesitas cambiar el TOKEN. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | 15 | ``` 16 | echo -n admin:Compolexpass#123 | base64 17 | ``` 18 | 19 | ``` 20 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 21 | docker-compose logs -f 22 | ``` 23 | 24 | Mientras que si has elegido Traefik, 25 | 26 | ``` 27 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 28 | docker-compose logs -f 29 | ``` 30 | -------------------------------------------------------------------------------- /ittools/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Flame](https://github.com/pawelmalak/flame) es un software para crear una "página de inicio" con enlaces a nuestras aplicaciones web y sitios web favoritos. 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/flame 8 | cp sample.env .env 9 | sed -i "s/flame.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir data 11 | ``` 12 | 13 | Además recuerda cambiar la contraseña. 14 | 15 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | Mientras que si has elegido Traefik, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | -------------------------------------------------------------------------------- /picoshare/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | picoshare: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.picoshare.loadbalancer.server.port=${PORT} 10 | - traefik.http.routers.picoshare.entrypoints=web 11 | - traefik.http.routers.picoshare.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.picoshare-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.picoshare.middlewares=picoshare-https-redirect 14 | - traefik.http.routers.picoshare-secure.entrypoints=websecure 15 | - traefik.http.routers.picoshare-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.picoshare-secure.tls=true 17 | - traefik.http.routers.picoshare-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /radicale/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | radicale: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.dnote.loadbalancer.server.port=5232 10 | - traefik.http.routers.expulsabot.entrypoints=web 11 | - traefik.http.routers.expulsabot.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.expulsabot-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.expulsabot.middlewares=expulsabot-https-redirect 14 | - traefik.http.routers.expulsabot-secure.entrypoints=websecure 15 | - traefik.http.routers.expulsabot-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.expulsabot-secure.tls=true 17 | - traefik.http.routers.expulsabot-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /photoprism/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3.5' 2 | 3 | services: 4 | 5 | photoprism: 6 | networks: 7 | - proxy 8 | labels: 9 | - traefik.enable=true 10 | - traefik.http.services.photoprism.loadbalancer.server.port=2342 11 | - traefik.http.routers.photoprism.entrypoints=web 12 | - traefik.http.routers.photoprism.rule=Host(`${FQDN}`) 13 | - traefik.http.middlewares.photoprism-https-redirect.redirectscheme.scheme=websecure 14 | - traefik.http.routers.photoprism.middlewares=photoprism-https-redirect 15 | - traefik.http.routers.photoprism-secure.entrypoints=websecure 16 | - traefik.http.routers.photoprism-secure.rule=Host(`${FQDN}`) 17 | - traefik.http.routers.photoprism-secure.tls=true 18 | - traefik.http.routers.photoprism-secure.tls.certresolver=letsencrypt 19 | 20 | networks: 21 | proxy: 22 | external: true 23 | -------------------------------------------------------------------------------- /vaultwarden/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Vaultwarden](https://github.com/dani-garcia/vaultwarden) es un servidor no oficial de Bitwarden, un gestor de contraseñas que almacena la información en una caja fuerte cifrada. 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/vaultwarden 8 | cp sample.env .env 9 | sed -i "s/vaultwarden.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir -p data 11 | ``` 12 | 13 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 14 | 15 | ``` 16 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | 20 | Mientras que si has elegido Traefik, 21 | 22 | ``` 23 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 24 | docker-compose logs -f 25 | ``` 26 | -------------------------------------------------------------------------------- /zincobserve/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | zincobserve: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.zincobserve.loadbalancer.server.port=5080 10 | - traefik.http.routers.zincobserve.entrypoints=web 11 | - traefik.http.routers.zincobserve.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.zincobserver-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.zincobserve.middlewares=zinc-https-redirect 14 | - traefik.http.routers.zincobserve-secure.entrypoints=https 15 | - traefik.http.routers.zincobserve-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.zincobserve-secure.tls=true 17 | - traefik.http.routers.zincobserve-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /cloudbeaver/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | cloudbeaver: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.cloudbeaver.loadbalancer.server.port=8978 10 | - traefik.http.routers.cloudbeaver.entrypoints=web 11 | - traefik.http.routers.cloudbeaver.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.cloudbeaver-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.cloudbeaver.middlewares=cloudbeaver-https-redirect 14 | - traefik.http.routers.cloudbeaver-secure.entrypoints=websecure 15 | - traefik.http.routers.cloudbeaver-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.cloudbeaver-secure.tls=true 17 | - traefik.http.routers.cloudbeaver-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /grafana-influx-telegraf/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/dnote 6 | cp sample.env .env 7 | sed -i "s/grafana.tudominio.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Si quieres puedes cambiar tambiar las variables correspondientes al usuario y administrador de `GRAFANA`, y en el caso de que quieras añadir masa usuarios, tendrás que modificar la variable `GF_SECURITY_ADMIN_PASSWORD`. 11 | 12 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 13 | 14 | ``` 15 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 16 | docker-compose logs -f 17 | ``` 18 | 19 | Mientras que si has elegido Traefik, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /filebrowser/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | filebrowser: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.filebrowser.loadbalancer.server.port=80 10 | - traefik.http.routers.filebrowser.entrypoints=web 11 | - traefik.http.routers.filebrowser.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.filebrowser-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.filebrowser.middlewares=filebrowser-https-redirect 14 | - traefik.http.routers.filebrowser-secure.entrypoints=websecure 15 | - traefik.http.routers.filebrowser-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.filebrowser-secure.tls=true 17 | - traefik.http.routers.filebrowser-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /ntfy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.15 as alpine 2 | 3 | ENV TZ=Europe/Madrid 4 | ENV VERSION=1.21.2 5 | 6 | RUN apk add --update --no-cache \ 7 | tini~=0.19 \ 8 | tzdata~=2022a-r0 && \ 9 | rm -rf /var/cache/apk && \ 10 | mkdir /app /etc/ntfy /app/data /app/data/attachments && \ 11 | addgroup -g 1000 -S dockerus && \ 12 | adduser -u 1000 -S dockerus -G dockerus 13 | 14 | ADD https://github.com/binwiederhier/ntfy/releases/download/v${VERSION}/ntfy_${VERSION}_linux_x86_64.tar.gz /tmp/ 15 | RUN tar zxvf /tmp/ntfy_${VERSION}_linux_x86_64.tar.gz -C /tmp && \ 16 | cp -a /tmp/ntfy_${VERSION}_linux_x86_64/ntfy /app/ntfy && \ 17 | rm -rf /tmp/ntfy_${VERSION}_linux_x86_64* && \ 18 | chown -R dockerus:dockerus /app /etc/ntfy /app/data /app/data/attachments 19 | 20 | EXPOSE 80 21 | 22 | WORKDIR /app 23 | 24 | ENTRYPOINT ["tini", "--"] 25 | CMD ["/app/ntfy", "serve"] 26 | -------------------------------------------------------------------------------- /silverbullet/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/silverbullet 6 | cp sample.env .env 7 | sed -i "s/silverbullet.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | mkdir space 9 | ``` 10 | 11 | Acuérdate de crear el directorio `space` en el mismo directorio en el que se encuentra el archivo `docker-compose.yml`. 12 | 13 | También deberías cambiar el resto de parámetros relativos a la autenticación. 14 | 15 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 16 | 17 | ``` 18 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 19 | docker-compose logs -f 20 | ``` 21 | 22 | Mientras que si has elegido Traefik, 23 | 24 | ``` 25 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 26 | docker-compose logs -f 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /vaultwarden/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | vaultwarden: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.vaultwarden.loadbalancer.server.port=80 10 | - traefik.http.routers.vaultwarden.entrypoints=web 11 | - traefik.http.routers.vaultwarden.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.vaultwarden-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.vaultwarden.middlewares=vaultwarden-https-redirect 14 | - traefik.http.routers.vaultwarden-secure.entrypoints=websecure 15 | - traefik.http.routers.vaultwarden-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.vaultwarden-secure.tls=true 17 | - traefik.http.routers.vaultwarden-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | 23 | -------------------------------------------------------------------------------- /gitea/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | gitea: 5 | labels: 6 | - traefik.enable=true 7 | - traefik.http.services.gitea.loadbalancer.server.port=3000 8 | - traefik.http.routers.gitea.entrypoints=web 9 | - traefik.http.routers.gitea.rule=Host(`${FQDN}`) 10 | - traefik.http.middlewares.gitea-https-redirect.redirectscheme.scheme=websecure 11 | - traefik.http.routers.gitea.middlewares=gitea-https-redirect 12 | - traefik.http.routers.gitea-secure.entrypoints=websecure 13 | - traefik.http.routers.gitea-secure.rule=Host(`${FQDN}`) 14 | - traefik.http.routers.gitea-secure.tls=true 15 | - traefik.http.routers.gitea-secure.tls.certresolver=letsencrypt 16 | - traefik.tcp.routers.gitea-ssh.entrypoints=git 17 | - traefik.tcp.routers.gitea-ssh.rule=HostSNI(`*`) 18 | - traefik.tcp.services.gitea-ssh.loadbalancer.server.port=22 19 | -------------------------------------------------------------------------------- /weaviate/docker-compose.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: '3.7' 3 | services: 4 | weaviate: 5 | container_name: weaviate 6 | image: semitechnologies/weaviate:1.23.0 7 | init: true 8 | command: 9 | - --host 10 | - 0.0.0.0 11 | - --port 12 | - '8080' 13 | - --scheme 14 | - http 15 | ports: 16 | - 8080:8080 17 | - 50051:50051 18 | volumes: 19 | - weaviate_data:/var/lib/weaviate 20 | restart: on-failure:0 21 | environment: 22 | QUERY_DEFAULTS_LIMIT: 25 23 | AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true' 24 | PERSISTENCE_DATA_PATH: '/var/lib/weaviate' 25 | DEFAULT_VECTORIZER_MODULE: 'none' 26 | ENABLE_MODULES: 'text2vec-cohere,text2vec-huggingface,text2vec-palm,text2vec-openai,generative-openai,generative-cohere,generative-palm,ref2vec-centroid,reranker-cohere,qna-openai' 27 | CLUSTER_HOSTNAME: 'node1' 28 | volumes: 29 | weaviate_data: 30 | -------------------------------------------------------------------------------- /atuin/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | atuin: 5 | image: ellieh/atuin:latest 6 | container_name: atuin 7 | restart: unless-stopped 8 | init: true 9 | environment: 10 | - ATUIN_HOST 11 | - ATUIN_PORT 12 | - ATUIN_OPEN_REGISTRATION 13 | - ATUIN_DB_URI="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres_for_atuin/${POSTGRES_DB}" 14 | networks: 15 | - proxy 16 | - internal 17 | postgres_for_atuin: 18 | image: postgres:latest 19 | container_name: postgres_for_atuin 20 | restart: unless-stopped 21 | init: true 22 | environment: 23 | - POSTGRES_USER 24 | - POSTGRES_PASSWORD 25 | - POSTGRES_DB 26 | volumes: 27 | - data:/var/lib/postgresql/data 28 | networks: 29 | - internal 30 | 31 | volumes: 32 | data: {} 33 | 34 | networks: 35 | internal: {} 36 | proxy: 37 | external: true 38 | -------------------------------------------------------------------------------- /dev/wpcli: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | CONTAINER=$(basename $PWD) 4 | VOLUME="${CONTAINER}_${CONTAINER}" 5 | DB_USER=$(grep DB_USER .env | cut -d'=' -f2) 6 | DB_PASSWORD=$(grep DB_USER .env | cut -d'=' -f2) 7 | DB_NAME=$(grep DB_USER .env | cut -d'=' -f2) 8 | docker run -it \ 9 | --rm \ 10 | --mount source=${VOLUME},target=/var/www/html \ 11 | --volume $(pwd)/plugins:/var/www/html/wp-content/plugins \ 12 | --volume $(pwd)/themes:/var/www/html/wp-content/themes \ 13 | --volume $(pwd)/uploads:/var/www/html/wp-content/uploads \ 14 | --volume $(pwd)/wp-config.php:/var/www/html/wp-config.php \ 15 | --network container:${CONTAINER} \ 16 | --env WORDPRESS_DB_HOST="mariadb" \ 17 | --env WORDPRESS_DB_USER="${DB_USER}" \ 18 | --env WORDPRESS_DB_PASSWORD="${DB_PASSWORD}" \ 19 | --env WORDPRESS_DB_NAME="${DB_NAME}" \ 20 | wordpress:cli "$@" 21 | -------------------------------------------------------------------------------- /logseq/README.md: -------------------------------------------------------------------------------- 1 | # Instalación 2 | 3 | [Logseq](https://logseq.com/) Logseq is a privacy-first, open-source knowledge base that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden. 4 | 5 | ``` 6 | git clone https://github.com/atareao/self-hosted.git 7 | cd self-hosted/logseq 8 | cp sample.env .env 9 | sed -i "s/logseq.tuservidor.es/el_fqdn_que_quieras/g" .env 10 | mkdir data 11 | ``` 12 | 13 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 14 | 15 | ``` 16 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 17 | docker-compose logs -f 18 | ``` 19 | 20 | Mientras que si has elegido Traefik, 21 | 22 | ``` 23 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 24 | docker-compose logs -f 25 | ``` 26 | -------------------------------------------------------------------------------- /webdav/webdav.conf: -------------------------------------------------------------------------------- 1 | worker_processes 1; 2 | 3 | events { 4 | worker_connections 1024; 5 | } 6 | 7 | http { 8 | include mime.types; 9 | default_type application/octet-stream; 10 | server { 11 | listen 8080; 12 | 13 | access_log /dev/stdout; 14 | error_log /dev/stdout info; 15 | 16 | client_max_body_size 0; 17 | 18 | location / { 19 | root /share; 20 | 21 | create_full_put_path on; 22 | autoindex on; 23 | autoindex_exact_size off; 24 | autoindex_localtime on; 25 | charset utf-8; 26 | 27 | dav_methods PUT DELETE MKCOL COPY MOVE; 28 | dav_ext_methods PROPFIND OPTIONS; 29 | dav_access user:rw group:rw all:r; 30 | 31 | auth_basic "Restricted Content"; 32 | auth_basic_user_file /opt/nginx/conf/.htpasswd; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /dingpdf/docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | pdfding: 3 | container_name: pdfding 4 | image: mrmn/pdfding:latest 5 | restart: unless-stopped 6 | init: true 7 | environment: 8 | DEFAULT_THEME: dark 9 | DEFAULT_THEME_COLOR: blue 10 | SECRET_KEY: some_secret 11 | HOST_NAME: pdfding.tuservidor.es 12 | CSRF_COOKIE_SECURE: 'TRUE' 13 | SESSION_COOKIE_SECURE: 'TRUE' 14 | volumes: 15 | - sqlite_data:/home/nonroot/pdfding/db 16 | - media:/home/nonroot/pdfding/media 17 | networks: 18 | - proxy 19 | labels: 20 | - traefik.enable=true 21 | - traefik.http.services.pdfding.loadbalancer.server.port=8000 22 | - traefik.http.routers.pdfding.entrypoints=https 23 | - traefik.http.routers.pdfding.rule=Host(`pdfding.tuservidor.es`) 24 | 25 | 26 | volumes: 27 | sqlite_data: 28 | media: 29 | 30 | networks: 31 | proxy: 32 | external: true 33 | -------------------------------------------------------------------------------- /facturascripts/docker-compose.traefik.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | facturascripts: 5 | networks: 6 | - proxy 7 | labels: 8 | - traefik.enable=true 9 | - traefik.http.services.facturascripts.loadbalancer.server.port=80 10 | - traefik.http.routers.facturascripts.entrypoints=web 11 | - traefik.http.routers.facturascripts.rule=Host(`${FQDN}`) 12 | - traefik.http.middlewares.facturascripts-https-redirect.redirectscheme.scheme=websecure 13 | - traefik.http.routers.facturascripts.middlewares=facturascripts-https-redirect 14 | - traefik.http.routers.facturascripts-secure.entrypoints=websecure 15 | - traefik.http.routers.facturascripts-secure.rule=Host(`${FQDN}`) 16 | - traefik.http.routers.facturascripts-secure.tls=true 17 | - traefik.http.routers.facturascripts-secure.tls.certresolver=letsencrypt 18 | 19 | networks: 20 | proxy: 21 | external: true 22 | -------------------------------------------------------------------------------- /sftpgo/README.md: -------------------------------------------------------------------------------- 1 | # Installation 2 | 3 | ``` 4 | git clone https://github.com/atareao/self-hosted.git 5 | cd self-hosted/sftpgo 6 | cp sample.env .env 7 | sed -i "s/sftpgo.tuservidor.es/el_fqdn_que_quieras/g" .env 8 | ``` 9 | 10 | Si no quieres utilizar `webdav`, elimina todo lo relativo al puerto `10080`, es decir, las siguientes líneas tienes que quitar del `docker-compose.yml` 11 | 12 | ```bash 13 | - 10080:10080 14 | environment: 15 | - SFTPGO_WEBDAV__BINDINGS__0__PORT=10080 16 | ``` 17 | 18 | 19 | A la hora de levantar el servicio dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente, 20 | 21 | ``` 22 | docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d 23 | docker-compose logs -f 24 | ``` 25 | 26 | Mientras que si has elegido Traefik, 27 | 28 | ``` 29 | docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d 30 | docker-compose logs -f 31 | ``` 32 | --------------------------------------------------------------------------------