Compare commits
65 commits
02a3a7d8c1
...
master
Author | SHA1 | Date | |
---|---|---|---|
Alexey Skobkin | 065e0586c8 | ||
be4d9a5b70 | |||
Alexey Skobkin | 4833e01142 | ||
Alexey Skobkin | 45d14a6a79 | ||
Alexey Skobkin | 3e058d228f | ||
Alexey Skobkin | 4f9bdb6b9f | ||
Alexey Skobkin | 55ecc704fd | ||
Alexey Skobkin | 24beb91928 | ||
126c3f59bd | |||
Alexey Skobkin | bf779291ab | ||
Alexey Skobkin | 5ad2118ee9 | ||
Alexey Skobkin | a729f38e5d | ||
6192640b9c | |||
Alexey Skobkin | b7198ee727 | ||
6310ec43ce | |||
Alexey Skobkin | aa21c92a9d | ||
Alexey Skobkin | 53a4abc0bd | ||
Alexey Skobkin | 8a14b0caa3 | ||
0547ffeec5 | |||
Alexey Skobkin | 0ffd7a3f64 | ||
783be7532e | |||
Alexey Skobkin | 0fe15c49f0 | ||
Alexey Skobkin | 69345b941f | ||
Alexey Skobkin | 365d8646e4 | ||
Alexey Skobkin | fbec9eb96c | ||
Alexey Skobkin | ced3e5a902 | ||
490e4d0bb0 | |||
Alexey Skobkin | f0f12fba83 | ||
e9f862ff7a | |||
Alexey Skobkin | d331b3e11b | ||
32e21ddc4f | |||
86556f4f96 | |||
ee4d41a5b8 | |||
1219e3f20f | |||
0af1267343 | |||
d0bfeabcfe | |||
4707d52aee | |||
905650d457 | |||
8781cfb066 | |||
4b2fc426c9 | |||
fba267ae29 | |||
542e4113bb | |||
355c6d53fd | |||
17eb6f99fa | |||
90ab172836 | |||
90a36f4026 | |||
2744234ad7 | |||
5b51007c79 | |||
436bb456d4 | |||
9d940767a3 | |||
6c2ed96956 | |||
198a62cb57 | |||
b08c462524 | |||
892a697c9c | |||
a8276a3341 | |||
ebfbe6a6c3 | |||
75cd8dbdfc | |||
f7d87305db | |||
ddd06555e4 | |||
fb4db4c661 | |||
49419eab8f | |||
233bd0b700 | |||
0f251d2131 | |||
ff0df0148c | |||
aca78fc57d |
15
.drone.yml
Normal file
15
.drone.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
kind: pipeline
|
||||
type: docker
|
||||
name: validate-pr
|
||||
|
||||
steps:
|
||||
- name: validate
|
||||
image: 'docker/compose:alpine-1.29.2'
|
||||
commands:
|
||||
- for DIR in */ ; do if [[ $(expr match "$DIR" "_.*") != 0 ]] ; then echo "SKIPPING $DIR" && continue; fi && test -f $DIR/.env.dist && cp $DIR/.env.dist $DIR/.env ; done
|
||||
- for DIR in */ ; do if [[ $(expr match "$DIR" "_.*") != 0 ]] ; then echo "SKIPPING $DIR" && continue; fi && echo $DIR && cd $DIR && docker-compose config && cd .. ; done
|
||||
|
||||
trigger:
|
||||
event:
|
||||
include:
|
||||
- pull_request
|
|
@ -1,5 +1,5 @@
|
|||
validate:
|
||||
image: 'docker/compose:1.29.2'
|
||||
script:
|
||||
- for DIR in */ ; do test -f $DIR/.env.dist && cp $DIR/.env.dist $DIR/.env ; done
|
||||
- for DIR in */ ; do echo $DIR && cd $DIR && docker-compose config && cd .. ; done
|
||||
- for DIR in */ ; do if [[ $(expr match "$DIR" "_.*") != 0 ]] ; then echo "SKIPPING $DIR" && continue; fi && test -f $DIR/.env.dist && cp $DIR/.env.dist $DIR/.env ; done
|
||||
- for DIR in */ ; do if [[ $(expr match "$DIR" "_.*") != 0 ]] ; then echo "SKIPPING $DIR" && continue; fi && echo $DIR && cd $DIR && docker-compose config && cd .. ; done
|
||||
|
|
91
README.md
91
README.md
|
@ -1,3 +1,5 @@
|
|||
[![Build Status](https://ci.skobk.in/api/badges/skobkin/docker-stacks/status.svg)](https://ci.skobk.in/skobkin/docker-stacks)
|
||||
|
||||
# Docker Compose config collection
|
||||
|
||||
## How to set up?
|
||||
|
@ -30,42 +32,53 @@ You need to change your database configuration to be able to do that. Check
|
|||
|
||||
Not every stack is tested to fully work.
|
||||
|
||||
| App Name | Status | Image | Description | Links |
|
||||
|-------------------------|--------------|----------------------------------------------|----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ARK Server | ✅ | `thmhoag/arkserver` | ARK: Survival Evolved game server with ArkManager. | [Website](http://playark.com), [Steam](https://store.steampowered.com/app/346110/ARK_Survival_Evolved/), [Image Github](https://github.com/thmhoag/arkserver), [ArkManager](https://github.com/arkmanager/ark-server-tools) |
|
||||
| Duplicati | ✅ | `linuxserver/duplicati` | Backup solution with many storage backends. | [Website](https://www.duplicati.com), [Github](https://github.com/duplicati/duplicati) |
|
||||
| Element-web | ✅ | `vectorim/element-web` | Web Matrix client. | [Website](https://element.io), [Github](https://github.com/vector-im/element-web/) |
|
||||
| emby | ✅ | `emby/embyserver` | Media server with online transcoding support. | [Website](https://emby.media) |
|
||||
| Folding@Home | ✅ | `johnktims/folding-at-home` | Protein folding distributed computing platform. | [Website](https://foldingathome.org), [My guide](https://skobk.in/2020/06/folding-at-home-quick-start/) |
|
||||
| Gatus | ✅ | `twinproduction/gatus` | Advanced service(s) status page. | [Website](https://gatus.io), [Github](https://github.com/TwiN/gatus) |
|
||||
| Gitea | ✅ | `gitea/gitea` | Lightweight Git hosting platfom. | [Website](https://gitea.io/), [Github](https://github.com/go-gitea/gitea) |
|
||||
| Homer | ✅ | `b4bz/homer` | Server homepage generator. | [Github](https://github.com/bastienwirtz/homer), [Demo](https://homer-demo.netlify.app), [Configuration](https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md) |
|
||||
| I2PD | ✅ | `purplei2p/i2pd` | The Invisible Internet router. | [Website](https://i2pd.website), [Github](https://github.com/PurpleI2P/i2pd/), [I2P project](https://geti2p.net/) |
|
||||
| ~~JDownloader~~ | ✅ Abandoned | `jaymoulin/jdownloader` | Download manager with paid/ad file hosting support. | [Website](https://jdownloader.org) |
|
||||
| ~~Joplin~~ | ✅ Abandoned | `joplin/server` | Markdown GTD / notes manager synchronization server. | [Website](https://joplinapp.org), [Github](https://github.com/laurent22/joplin) |
|
||||
| Lidarr | Not tested | `linuxserver/lidarr` | Music downloader and manager. | [Website](https://lidarr.audio), [Github](https://github.com/Lidarr/Lidarr), [Wiki](https://wiki.servarr.com/lidarr) |
|
||||
| magnetico-web-telegram | ✅ | `skobkin/magnetico-web-telegram-bot` | Magnetico Web Telegram bot. | [Bitbucket](https://bitbucket.org/skobkin/magnetico-web-telegram-bot/) |
|
||||
| magneticod | ✅ | `boramalper/magneticod` | DHT indexing daemon. | [Website](https://www.boramalper.org/labs/magnetico/), [Github](https://github.com/boramalper/magnetico) |
|
||||
| ~~magneticod-python~~ | ✅ Abandoned | `skobkin/magneticod-python` | DHT indexing daemon (legacy version) | [Website](https://www.boramalper.org/labs/magnetico/), [Github](https://github.com/boramalper/magnetico) |
|
||||
| ~~mariadb-common~~ | ❌ Unfinished | `mariadb` | MariaDB database for common use. | [Website](https://mariadb.org) |
|
||||
| Metube | ✅ | `alexta69/metube` | Web GUI for yt-dlp. | [Github](https://github.com/alexta69/metube) |
|
||||
| Murmur | ✅ | `registry.gitlab.com/skobkin/docker-murmur` | Mumble VoIP server (custom build) | [Website](https://www.mumble.info), [Github](https://github.com/mumble-voip/mumble) |
|
||||
| NextCloud | ❌ Unfinished | `nextcloud` | File management, synchronization, management and GTD platform. | [Website](https://nextcloud.com), [Github](https://github.com/nextcloud/server) |
|
||||
| Open Streaming Platform | ✅ | `deamos/openstreamingplatform` | Live streaming platform. | [Website](https://openstreamingplatform.com), [Gitlab](https://gitlab.com/osp-group/flask-nginx-rtmp-manager) |
|
||||
| OpenVPN | ✅ | `kylemanna/openvpn` | OpenVPN server with some management toolkit. | [Website](https://openvpn.net), [Image Github](https://www.github.com/kylemanna/docker-openvpn) |
|
||||
| Owncast | ✅ | `gabekangas/owncast` | Live streaming platform with federation support. | [Website](https://owncast.online), [Github](https://github.com/owncast/owncast) |
|
||||
| Portainer | ✅ | `portainer/portainer` | Docker Container management web UI. | [Website](https://www.portainer.io), [Github](https://github.com/portainer/portainer) |
|
||||
| ~~Postgres Common~~ | ❌ Unfinished | `postgres` | PostgreSQL database for common use. | [Website](https://www.postgresql.org) |
|
||||
| Proxy MTProto | ✅ | `mtproxy/mtproxy` | MTProto Telegram proxy. | [Website](https://telegram.org), [Github](https://github.com/TelegramMessenger/MTProxy) |
|
||||
| Proxy Socks5 | ✅ | `serjs/go-socks5-proxy` | Simple SOCKS5 proxy. | [Github](https://github.com/serjs/socks5-server) |
|
||||
| Radarr | ✅ | `linuxserver/radarr` | Movie downloader and manager. | [Website](https://radarr.video), [Github](https://github.com/Radarr/Radarr), [Wiki](https://wiki.servarr.com/radarr) |
|
||||
| Redis | ✅ | `redis` | Redis storage server. | [Website](https://redis.io), [Github](https://github.com/redis/redis-io) |
|
||||
| Sonarr | ✅ | `linuxserver/sonarr` | TV Shows, series and anime downloader and manager. | [Website](https://sonarr.tv), [Github](https://github.com/Sonarr/Sonarr), [Wiki](https://wiki.servarr.com/sonarr) |
|
||||
| Speedtest | ✅ | `adolfintel/speedtest` | Libre speed test implementation. | [Website](https://librespeed.org), [Github](https://github.com/librespeed/speedtest) |
|
||||
| Synapse | ✅ | `matrixdotorg/synapse` | Matrix reference server written in Python. | [Website](https://matrix.org/docs/projects/server/synapse), [Github](https://github.com/matrix-org/synapse), [Installation and configuration](https://matrix-org.github.io/synapse/latest/setup/installation.html) |
|
||||
| Syncthing | ✅ | `linuxserver/syncthing` | P2P file synchronization daemon. | [Website](https://syncthing.net), [Github](https://github.com/syncthing/syncthing) |
|
||||
| Tor OBFS4 Bridge | ✅ | `thetorproject/obfs4-bridge` | Tor OBFS4 Bridge for Tor blocking bypass. | [Website](https://community.torproject.org/relay/setup/bridge/), [Gitlab](https://gitlab.torproject.org/tpo/anti-censorship/docker-obfs4-bridge), [Manual](https://community.torproject.org/relay/setup/bridge/docker/) |
|
||||
| Tor Privoxy | ✅ | `registry.gitlab.com/skobkin/torproxy-obfs4` | Tor image with integrated privoxy and OBFS4 bridge support. | [Original image Github](https://github.com/dperson/torproxy), [OBFS4 support image Gitlab](https://gitlab.com/skobkin/torproxy-obfs4) |
|
||||
| Watchtower | ✅ | `containrrr/watchtower` | Docker container auto-update daemon. | [Website](https://containrrr.dev/watchtower/), [Github](https://github.com/containrrr/watchtower) |
|
||||
| Wireguard | ❌ Unfinished | `cmulk/wireguard-docker` | WireGuard VPN. | [Website](https://www.wireguard.com), [Image Github](https://github.com/cmulk/wireguard-docker) |
|
||||
| ~~Wordpress~~ | ❌ Unfinished | `wordpress` | Wordpress blogging platform. | [Webiste](https://wordpress.org), [SVN](https://build.trac.wordpress.org/browser) |
|
||||
| App Name | Status | Image | Description | Links |
|
||||
|-------------------------|-------------|----------------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ARK Server | ✅ | `thmhoag/arkserver` | ARK: Survival Evolved game server with ArkManager. | [Website](http://playark.com), [Steam](https://store.steampowered.com/app/346110/ARK_Survival_Evolved/), [Image Github](https://github.com/thmhoag/arkserver), [ArkManager](https://github.com/arkmanager/ark-server-tools) |
|
||||
| Castopod | ✅ | `castopod/castopod` | Self-hosted federated podcasting platform | [Website](https://castopod.org), [Gitlab](https://code.castopod.org/adaures/castopod) |
|
||||
| Drone | ✅ | `drone/drone` | Continuous integration platform. | [Website](https://www.drone.io), [Github](https://github.com/harness/drone), [Image](https://hub.docker.com/r/drone/drone) |
|
||||
| Drone Docker Runner | ✅ | `drone/drone-runner-docker` | CI runner daemon for Docker. | [Website](https://www.drone.io), [Github](https://github.com/drone-runners/drone-runner-docker), [Image](https://hub.docker.com/r/drone/drone-runner-docker) |
|
||||
| Duplicati | ✅ | `linuxserver/duplicati` | Backup solution with many storage backends. | [Website](https://www.duplicati.com), [Github](https://github.com/duplicati/duplicati) |
|
||||
| Element-web | ✅ | `vectorim/element-web` | Web Matrix client. | [Website](https://element.io), [Github](https://github.com/vector-im/element-web/) |
|
||||
| emby | ✅ | `emby/embyserver` | Media server with online transcoding support. | [Website](https://emby.media) |
|
||||
| Firefly III | Not tested | `fireflyiii/core` | Bookkeeping software. | [Website](https://docs.firefly-iii.org), [Github](https://github.com/firefly-iii/firefly-iii) |
|
||||
| Folding@Home | ✅ | `johnktims/folding-at-home` | Protein folding distributed computing platform. | [Website](https://foldingathome.org), [My guide](https://skobk.in/2020/06/folding-at-home-quick-start/) |
|
||||
| Forgejo | ✅ | `codeberg.org/forgejo/forgejo` | Lightweight Git hosting platform. | [Website](https://forgejo.org), [Github](https://codeberg.org/forgejo/forgejo) |
|
||||
| Gatus | ✅ | `twinproduction/gatus` | Advanced service(s) status page. | [Website](https://gatus.io), [Github](https://github.com/TwiN/gatus) |
|
||||
| HedgeDoc | ✅ | `lscr.io/linuxserver/hedgedoc` | Collaborative text editor. | [Website](https://hedgedoc.org), [Github](https://github.com/hedgedoc/hedgedoc) |
|
||||
| Home Assistant | ✅ | `ghcr.io/home-assistant/home-assistant` | Home automation suite. | [Website](https://www.home-assistant.io/), [Github](https://github.com/home-assistant) |
|
||||
| Homer | ✅ | `b4bz/homer` | Server homepage generator. | [Github](https://github.com/bastienwirtz/homer), [Demo](https://homer-demo.netlify.app), [Configuration](https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md) |
|
||||
| I2PD | ✅ | `purplei2p/i2pd` | The Invisible Internet router. | [Website](https://i2pd.website), [Github](https://github.com/PurpleI2P/i2pd/), [I2P project](https://geti2p.net/) |
|
||||
| InBucket | ✅ | `inbucket/inbucket` | Testing SMTP/POP3 mail server with web interface. | [Website](https://www.inbucket.org), [Github](https://github.com/inbucket/inbucket) |
|
||||
| Killing Floor 2 server | ✅ Abandoned | `jeeaaasustest/killingfloor2-srv` | Killing Floor 2 game server. | |
|
||||
| Lidarr | Not tested | `linuxserver/lidarr` | Music downloader and manager. | [Website](https://lidarr.audio), [Github](https://github.com/Lidarr/Lidarr), [Wiki](https://wiki.servarr.com/lidarr) |
|
||||
| magnetico-web | ✅ | `skobkin/magnetico-web` | DHT indexer private web search front-end. | [Git](https://git.skobk.in/skobkin/magnetico-web), [Git mirror](https://gitlab.com/skobkin/magnetico-web) |
|
||||
| magnetico-web-telegram | ✅ | `skobkin/magnetico-web-telegram-bot` | Magnetico Web Telegram bot. | [Bitbucket](https://bitbucket.org/skobkin/magnetico-web-telegram-bot/) |
|
||||
| magneticod | ✅ | `boramalper/magneticod` | DHT indexing daemon. | [Website](https://www.boramalper.org/labs/magnetico/), [Github](https://github.com/boramalper/magnetico) |
|
||||
| Matrix Telegram Bridge | ✅ | `dock.mau.dev/mautrix/telegram` | Telegram bridge for Matrix server | [Gitlab](https://mau.dev/mautrix/telegram/) |
|
||||
| Metube | ✅ | `alexta69/metube` | Web GUI for yt-dlp. | [Github](https://github.com/alexta69/metube) |
|
||||
| Murmur (Mumble server) | ✅ | `registry.gitlab.com/skobkin/docker-murmur` | Mumble VoIP server (custom build) | [Website](https://www.mumble.info), [Github](https://github.com/mumble-voip/mumble) |
|
||||
| Ollama | ✅ | `ollama/ollama` | Toolkit for easily running LLM's locally. | [Website](https://ollama.com), [Github](https://github.com/ollama/ollama) |
|
||||
| Open Streaming Platform | ✅ | `deamos/openstreamingplatform` | Live streaming platform. | [Website](https://openstreamingplatform.com), [Gitlab](https://gitlab.com/osp-group/flask-nginx-rtmp-manager) |
|
||||
| OpenVPN | ✅ | `kylemanna/openvpn` | OpenVPN server with some management toolkit. | [Website](https://openvpn.net), [Image Github](https://www.github.com/kylemanna/docker-openvpn) |
|
||||
| Owncast | ✅ | `gabekangas/owncast` | Live streaming platform with federation support. | [Website](https://owncast.online), [Github](https://github.com/owncast/owncast) |
|
||||
| Portainer | ✅ | `portainer/portainer` | Docker Container management web UI. | [Website](https://www.portainer.io), [Github](https://github.com/portainer/portainer) |
|
||||
| Proxy MTProto | ✅ | `mtproxy/mtproxy` | MTProto Telegram proxy. | [Website](https://telegram.org), [Github](https://github.com/TelegramMessenger/MTProxy) |
|
||||
| Proxy Socks5 | ✅ | `serjs/go-socks5-proxy` | Simple SOCKS5 proxy. | [Github](https://github.com/serjs/socks5-server) |
|
||||
| qBittorrent | ✅ | `linuxserver/qbittorrent` | qBittorrent (noX) | [Website](https://www.qbittorrent.org), [LinuxServer Fleet](https://fleet.linuxserver.io/image?name=linuxserver/qbittorrent) |
|
||||
| Radarr | ✅ | `linuxserver/radarr` | Movie downloader and manager. | [Website](https://radarr.video), [Github](https://github.com/Radarr/Radarr), [Wiki](https://wiki.servarr.com/radarr) |
|
||||
| Redis | ✅ | `redis` | Redis storage server. | [Website](https://redis.io), [Github](https://github.com/redis/redis-io) |
|
||||
| Shadowsocks Client | ✅ | `ghcr.io/shadowsocks/sslocal-rust:latest` | Shadowsocks client (and SOCKS/HTTP/tunnel server). | [Website](https://shadowsocks.org), [Github](https://github.com/shadowsocks/shadowsocks-rust), [Configuration](https://github.com/shadowsocks/shadowsocks-rust#getting-started) |
|
||||
| Sish | ✅ | `antoniomika/sish` | Localhost tunneling solution over SSH | [Docs](https://docs.ssi.sh/getting-started), [Github](https://github.com/antoniomika/sish) |
|
||||
| Shinobi | ✅ | `shinobisystems/shinobi` | Shinobi surveillance system | [Website](https://shinobi.video), [Github](https://github.com/ShinobiCCTV/Shinobi) |
|
||||
| Sonarr | ✅ | `linuxserver/sonarr` | TV Shows, series and anime downloader and manager. | [Website](https://sonarr.tv), [Github](https://github.com/Sonarr/Sonarr), [Wiki](https://wiki.servarr.com/sonarr) |
|
||||
| Speedtest | ✅ | `adolfintel/speedtest` | Libre speed test implementation. | [Website](https://librespeed.org), [Github](https://github.com/librespeed/speedtest) |
|
||||
| Synapse | ✅ | `matrixdotorg/synapse` | Matrix reference server written in Python. | [Website](https://matrix.org/docs/projects/server/synapse), [Github](https://github.com/matrix-org/synapse), [Installation and configuration](https://matrix-org.github.io/synapse/latest/setup/installation.html) |
|
||||
| Syncthing | ✅ | `linuxserver/syncthing` | P2P file synchronization daemon. | [Website](https://syncthing.net), [Github](https://github.com/syncthing/syncthing) |
|
||||
| Telegram LLM Bot | ✅ | `skobkin/telegram-llm-bot` | Simple Telegram bot to interact with LLM running in Ollama | [Forgejo repository](https://git.skobk.in/skobkin/telegram-ollama-reply-bot) |
|
||||
| Telegram RSS Bot | ✅ | `miroslavsckaya/tg-rss-bot` | Telegram RSS Bot by @Miroslavsckaya. | [Gitea](https://git.skobk.in/Miroslavsckaya/tg_rss_bot/), [Github Mirror](https://github.com/Miroslavsckaya/tg_rss_bot) |
|
||||
| Tor OBFS4 Bridge | ✅ | `thetorproject/obfs4-bridge` | Tor OBFS4 Bridge for Tor blocking bypass. | [Website](https://community.torproject.org/relay/setup/bridge/), [Gitlab](https://gitlab.torproject.org/tpo/anti-censorship/docker-obfs4-bridge), [Manual](https://community.torproject.org/relay/setup/bridge/docker/) |
|
||||
| Tor Privoxy | ✅ | `registry.gitlab.com/skobkin/torproxy-obfs4` | Tor image with integrated privoxy and OBFS4 bridge support. | [Original image Github](https://github.com/dperson/torproxy), [OBFS4 support image Gitlab](https://gitlab.com/skobkin/torproxy-obfs4) |
|
||||
| Transmission | ✅ | `lscr.io/linuxserver/transmission` | Torrent client suitable for NAS. | [Github](https://github.com/linuxserver/docker-transmission), [LinuxServer Fleet](https://hub.docker.com/r/linuxserver/transmission) |
|
||||
| Watchtower | ✅ | `containrrr/watchtower` | Docker container auto-update daemon. | [Website](https://containrrr.dev/watchtower/), [Github](https://github.com/containrrr/watchtower) |
|
||||
| Webhook.site | | `webhooksite/webhook.site` | HTTP callback testing tool | [Website](https://webhook.site), [Github](https://github.com/webhooksite/webhook.site) |
|
||||
|
|
|
@ -6,19 +6,21 @@
|
|||
### PostgreSQL
|
||||
You need to make PostgreSQL listen not only `localhost`, but also Docker's network interface.
|
||||
|
||||
To do that you need to add host machine IP address in the Docker network (usually `172.17.0.1`) to the `postgresql.conf`:
|
||||
To do that you need to add host machine IP address in the Docker network (usually `172.17.0.1`) to the
|
||||
`postgresql.conf` by changing `listen_addresses` parameter:
|
||||
```ini
|
||||
# Listen local interface and also Docker's network
|
||||
listen_addresses = 'localhost,172.17.0.1'
|
||||
```
|
||||
|
||||
Then you need to allow apps inside Docker containers to authenticate. That could be done in the `pg_hba.conf`:
|
||||
Then you need to allow apps inside Docker containers to authenticate. That could be done by adding following line to the
|
||||
`pg_hba.conf`:
|
||||
```
|
||||
# Docker network
|
||||
host all all 172.17.0.0/12 md5
|
||||
```
|
||||
|
||||
Do not forget to restart your PostgreSQL server. For PostgreSQL 12 it could be usually done like that:
|
||||
Do not forget to restart your PostgreSQL server. For PostgreSQL 12 and `main` cluster it could be usually done like that:
|
||||
|
||||
```shell
|
||||
systemctl restart postgresql@12-main.service
|
||||
|
|
57
castopod/.env.dist
Normal file
57
castopod/.env.dist
Normal file
|
@ -0,0 +1,57 @@
|
|||
# see https://docs.castopod.org/main/en/getting-started/docker/
|
||||
# see https://hub.docker.com/r/castopod/castopod
|
||||
# see https://docs.castopod.org/main/en/getting-started/docker/#environment-variables
|
||||
|
||||
IMAGE_TAG=latest
|
||||
|
||||
# Ports
|
||||
EXTERNAL_ADDRESS=127.0.0.1
|
||||
EXTERNAL_PORT=8393
|
||||
|
||||
# Castopod Settings
|
||||
|
||||
CP_BASEURL=https://cp.domain.tld
|
||||
#CP_MEDIA_BASEURL=https://cp.domain.tld
|
||||
CP_ANALYTICS_SALT=changeme
|
||||
#CP_CACHE_HANDLER=redis
|
||||
#CP_REDIS_HOST=redis
|
||||
CP_REDIS_PASSWORD=changeme
|
||||
|
||||
#CP_ADMIN_GATEWAY=custom-admin-path
|
||||
#CP_AUTH_GATEWAY=custom-auth-path
|
||||
|
||||
#CP_ENABLE_2FA=true
|
||||
|
||||
CP_DATABASE_HOSTNAME=host.docker.internal
|
||||
CP_DATABASE_NAME=castopod
|
||||
CP_DATABASE_USERNAME=castopod
|
||||
CP_DATABASE_PASSWORD=changeme
|
||||
|
||||
# Storage
|
||||
|
||||
MEDIA_PATH=./media
|
||||
REDIS_DATA_PATH=./redis_data
|
||||
|
||||
# See https://docs.castopod.org/main/en/getting-started/install/#s3
|
||||
#CP_MEDIA_FILE_MANAGER="s3"
|
||||
#CP_MEDIA_S3_ENDPOINT="your_s3_host"
|
||||
#CP_MEDIA_S3_KEY="your_s3_key"
|
||||
#CP_MEDIA_S3_SECRET="your_s3_secret"
|
||||
#CP_MEDIA_S3_REGION="your_s3_region"
|
||||
##CP_MEDIA_S3_BUCKET="your_s3_bucket"
|
||||
##CP_MEDIA_S3_PROTOCOL=
|
||||
##CP_MEDIA_S3_PATH_STYLE_ENDPOINT=
|
||||
##CP_MEDIA_S3_KEY_PREFIX=
|
||||
|
||||
#CP_MAX_BODY_SIZE=512M
|
||||
|
||||
# Mailing
|
||||
#CP_EMAIL_FROM=your_email_address
|
||||
#CP_EMAIL_SMTP_HOST=your_smtp_host
|
||||
#CP_EMAIL_SMTP_USERNAME=your_smtp_user
|
||||
#CP_EMAIL_SMTP_PASSWORD=your_smtp_password
|
||||
##CP_EMAIL_SMTP_PORT=12345
|
||||
##CP_EMAIL_SMTP_CRYPTO=tls
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
46
castopod/docker-compose.yml
Normal file
46
castopod/docker-compose.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
services:
|
||||
castopod:
|
||||
image: 'castopod/castopod:${IMAGE_TAG:-latest}'
|
||||
container_name: 'castopod'
|
||||
volumes:
|
||||
- '${MEDIA_PATH:-./media}:/var/www/castopod/public/media'
|
||||
environment:
|
||||
MYSQL_DATABASE: '${CP_DATABASE_NAME:-castopod}'
|
||||
MYSQL_USER: '${CP_DATABASE_USERNAME:-castopod}'
|
||||
MYSQL_PASSWORD: '${CP_DATABASE_PASSWORD}'
|
||||
CP_BASEURL: "${CP_BASEURL}"
|
||||
CP_ANALYTICS_SALT: '${CP_ANALYTICS_SALT}'
|
||||
CP_CACHE_HANDLER: '${CP_CACHE_HANDLER:-redis}'
|
||||
CP_REDIS_HOST: '${CP_REDIS_HOST:-redis}'
|
||||
CP_REDIS_PASSWORD: '${CP_REDIS_PASSWORD}'
|
||||
env_file: '.env'
|
||||
networks:
|
||||
- castopod
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- '${EXTERNAL_ADDRESS:-127.0.0.1}:${EXTERNAL_PORT:-8393}:8000'
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: 'json-file'
|
||||
options:
|
||||
max-size: '${LOG_MAX_SIZE:-5m}'
|
||||
max-file: '${LOG_MAX_FILE:-5}'
|
||||
|
||||
redis:
|
||||
image: 'redis:7.2-alpine'
|
||||
container_name: 'castopod-redis'
|
||||
command: '--requirepass ${CP_REDIS_PASSWORD}'
|
||||
volumes:
|
||||
- '${REDIS_DATA_PATH:-./redis_data}:/data'
|
||||
networks:
|
||||
- castopod
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: 'json-file'
|
||||
options:
|
||||
max-size: '${LOG_MAX_SIZE:-5m}'
|
||||
max-file: '${LOG_MAX_FILE:-5}'
|
||||
|
||||
networks:
|
||||
castopod:
|
2
castopod/redis_data/.gitignore
vendored
Normal file
2
castopod/redis_data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
18
drone-runner/.env.dist
Normal file
18
drone-runner/.env.dist
Normal file
|
@ -0,0 +1,18 @@
|
|||
# see https://hub.docker.com/r/drone/drone-runner-docker
|
||||
IMAGE_VERSION=1
|
||||
|
||||
WEBUI_BIND_ADDR=127.0.0.1
|
||||
WEBUI_BIND_PORT=8387
|
||||
|
||||
# Drone settings
|
||||
# https://docs.drone.io/runner/docker/installation/linux/
|
||||
DRONE_RPC_PROTO=https
|
||||
DRONE_RPC_HOST=drone.domain.tld
|
||||
DRONE_RPC_SECRET=super-duper-secret
|
||||
|
||||
DRONE_RUNNER_CAPACITY=2
|
||||
DRONE_RUNNER_NAME=runner-name
|
||||
|
||||
# Service settings
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
21
drone-runner/docker-compose.yml
Normal file
21
drone-runner/docker-compose.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
# https://hub.docker.com/r/drone/drone-runner-docker
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
drone-runner:
|
||||
image: "drone/drone-runner-docker:${IMAGE_VERSION:-1}"
|
||||
container_name: drone-runner
|
||||
volumes:
|
||||
# Mounting Docker socket inside the container to control temporary Docker containers from runner.
|
||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||
ports:
|
||||
# Optional, used for dashboard:
|
||||
# https://discourse.drone.io/t/drone-agent-port/5914/5
|
||||
- "${WEBUI_BIND_ADDR:-127.0.0.1}:${WEBUI_BIND_PORT:-8387}:3000"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
19
drone-runner/nginx/drone-runner.conf
Normal file
19
drone-runner/nginx/drone-runner.conf
Normal file
|
@ -0,0 +1,19 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name drone-runner.domain.tld;
|
||||
|
||||
#charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://127.0.0.1:8387/;
|
||||
}
|
||||
}
|
30
drone/.env.dist
Normal file
30
drone/.env.dist
Normal file
|
@ -0,0 +1,30 @@
|
|||
# see https://hub.docker.com/r/drone/drone
|
||||
IMAGE_VERSION=2
|
||||
|
||||
HOST_DATA_DIR=./data
|
||||
|
||||
WEBUI_BIND_ADDR=127.0.0.1
|
||||
WEBUI_BIND_PORT=8386
|
||||
|
||||
# Drone settings
|
||||
# https://docs.drone.io/server/reference/
|
||||
DRONE_GITEA_SERVER=https://gitea.domain.tld
|
||||
DRONE_GITEA_CLIENT_ID=xxx
|
||||
DRONE_GITEA_CLIENT_SECRET=yyy
|
||||
DRONE_RPC_SECRET=super-duper-secret
|
||||
DRONE_SERVER_HOST=drone.domain.tld
|
||||
DRONE_SERVER_PROTO=https
|
||||
|
||||
#DRONE_DATABASE_DRIVER=mysql
|
||||
#DRONE_DATABASE_DRIVER=postgres
|
||||
DRONE_DATABASE_DRIVER=sqlite3
|
||||
#DRONE_DATABASE_DATASOURCE=root:password@tcp(1.2.3.4:3306)/drone?parseTime=true
|
||||
#DRONE_DATABASE_DATASOURCE=postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable
|
||||
DRONE_DATABASE_DATASOURCE=/data/database.sqlite
|
||||
# Optional string value. Configures the secret key used to encrypt secrets in the database.
|
||||
# Encryption is disabled by default and must be configured before the system is first used.
|
||||
#DRONE_DATABASE_SECRET=zzz
|
||||
|
||||
# Service settings
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
drone/data/.gitignore
vendored
Normal file
2
drone/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
22
drone/docker-compose.yml
Normal file
22
drone/docker-compose.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
# https://hub.docker.com/r/drone/drone
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
drone:
|
||||
image: "drone/drone:${IMAGE_VERSION:-2}"
|
||||
container_name: drone
|
||||
hostname: drone
|
||||
extra_hosts:
|
||||
# Not necessary, but allows to access to local database if chosen over SQLite.
|
||||
- "host.docker.internal:host-gateway"
|
||||
volumes:
|
||||
- "${HOST_DATA_DIR:-./data}:/data"
|
||||
ports:
|
||||
- "${WEBUI_BIND_ADDR:-127.0.0.1}:${WEBUI_BIND_PORT:-8386}:80"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
19
drone/nginx/drone.conf
Normal file
19
drone/nginx/drone.conf
Normal file
|
@ -0,0 +1,19 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name drone.domain.tld;
|
||||
|
||||
#charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://127.0.0.1:8386/;
|
||||
}
|
||||
}
|
|
@ -11,6 +11,9 @@ HOST_MULTIMEDIA_DIR=/mnt/multimedia
|
|||
# Leave as it is unless you really need something else
|
||||
INT_MULTIMEDIA_DIR=/libraries
|
||||
|
||||
# Uncomment this for AMD GPU video acceleration
|
||||
#VIDEO_ACCEL_DEVICE=/dev/dri/renderD128
|
||||
|
||||
WEBUI_BIND_ADDR=0.0.0.0
|
||||
WEBUI_BIND_PORT=8096
|
||||
WEBUI_INT_BIND_PORT=8096
|
||||
|
@ -18,4 +21,4 @@ WEBUI_INT_BIND_PORT=8096
|
|||
#WEBUI_INT_HTTPS_BIND_PORT=8920
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
||||
LOG_MAX_FILE=5
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# https://hub.docker.com/r/emby/embyserver
|
||||
version: '3.7'
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
emby:
|
||||
|
@ -8,6 +8,8 @@ services:
|
|||
volumes:
|
||||
- "${HOST_CONFIG_DIR:-./config}:/config"
|
||||
- "${HOST_MULTIMEDIA_DIR}:${INT_MULTIMEDIA_DIR:-/libraries}"
|
||||
devices:
|
||||
- "${VIDEO_ACCEL_DEVICE:-/dev/null}:${VIDEO_ACCEL_DEVICE:-/dev/null}"
|
||||
ports:
|
||||
- "${WEBUI_BIND_ADDR:-127.0.0.1}:${WEBUI_BIND_PORT:-8096}:${WEBUI_INT_BIND_PORT:-8096}/tcp"
|
||||
# Use reverse-proxy instead
|
||||
|
|
315
firefly-iii/.env.dist
Normal file
315
firefly-iii/.env.dist
Normal file
|
@ -0,0 +1,315 @@
|
|||
# see https://docs.firefly-iii.org/how-to/firefly-iii/installation/docker/
|
||||
# see https://hub.docker.com/r/fireflyiii/core
|
||||
|
||||
IMAGE_TAG=latest
|
||||
|
||||
WEB_BIND_ADDR=127.0.0.1
|
||||
WEB_BIND_PORT=8392
|
||||
|
||||
UPLOAD_DIR=./upload
|
||||
DB_DIR=./db
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
||||
|
||||
# Firefly
|
||||
#
|
||||
# Please make sure this URL matches the external URL of your Firefly III installation.
|
||||
# It is used to validate specific requests and to generate URLs in emails.
|
||||
#
|
||||
APP_URL=http://localhost
|
||||
|
||||
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
|
||||
# Never set it to "testing".
|
||||
APP_ENV=production
|
||||
|
||||
# Set to true if you want to see debug information in error screens.
|
||||
APP_DEBUG=false
|
||||
|
||||
# This should be your email address.
|
||||
# If you use Docker or similar, you can set this variable from a file by using SITE_OWNER_FILE
|
||||
# The variable is used in some errors shown to users who aren't admin.
|
||||
SITE_OWNER=mail@example.com
|
||||
|
||||
# The encryption key for your sessions. Keep this very secure.
|
||||
# Change it to a string of exactly 32 chars or use something like `php artisan key:generate` to generate it.
|
||||
# If you use Docker or similar, you can set this variable from a file by using APP_KEY_FILE
|
||||
#
|
||||
# Avoid the "#" character in your APP_KEY, it may break things.
|
||||
#
|
||||
APP_KEY=SomeRandomStringOf32CharsExactly
|
||||
|
||||
# Firefly III will launch using this language (for new users and unauthenticated visitors)
|
||||
# For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang
|
||||
#
|
||||
# If text is still in English, remember that not everything may have been translated.
|
||||
DEFAULT_LANGUAGE=en_US
|
||||
|
||||
# The locale defines how numbers are formatted.
|
||||
# by default this value is the same as whatever the language is.
|
||||
DEFAULT_LOCALE=equal
|
||||
|
||||
# Change this value to your preferred time zone.
|
||||
# Example: Europe/Amsterdam
|
||||
# For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
TZ=Europe/Moscow
|
||||
|
||||
# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy.
|
||||
# Set it to ** and reverse proxies work just fine.
|
||||
TRUSTED_PROXIES=**
|
||||
|
||||
# The log channel defines where your log entries go to.
|
||||
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
|
||||
# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
|
||||
# A rotating log option is 'daily', creates 5 files that (surprise) rotate.
|
||||
# A cool option is 'papertrail' for cloud logging
|
||||
# Default setting 'stack' will log to 'daily' and to 'stdout' at the same time.
|
||||
LOG_CHANNEL=stack
|
||||
|
||||
# Log level. You can set this from least severe to most severe:
|
||||
# debug, info, notice, warning, error, critical, alert, emergency
|
||||
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
|
||||
# nothing will get logged, ever.
|
||||
APP_LOG_LEVEL=notice
|
||||
|
||||
# Audit log level.
|
||||
# The audit log is used to log notable Firefly III events on a separate channel.
|
||||
# These log entries may contain sensitive financial information.
|
||||
# The audit log is disabled by default.
|
||||
#
|
||||
# To enable it, set AUDIT_LOG_LEVEL to "info"
|
||||
# To disable it, set AUDIT_LOG_LEVEL to "emergency"
|
||||
AUDIT_LOG_LEVEL=emergency
|
||||
|
||||
#
|
||||
# If you want, you can redirect the audit logs to another channel.
|
||||
# Set 'audit_stdout', 'audit_syslog', 'audit_errorlog' to log to the system itself.
|
||||
# Use audit_daily to log to a rotating file.
|
||||
# Use audit_papertrail to log to papertrail.
|
||||
#
|
||||
# If you do this, the audit logs may be mixed with normal logs because the settings for these channels
|
||||
# are often the same as the settings for the normal logs.
|
||||
AUDIT_LOG_CHANNEL=
|
||||
|
||||
#
|
||||
# Used when logging to papertrail:
|
||||
# Also used when audit logs log to papertrail:
|
||||
#
|
||||
PAPERTRAIL_HOST=
|
||||
PAPERTRAIL_PORT=
|
||||
|
||||
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
|
||||
# For other database types, please see the FAQ: https://docs.firefly-iii.org/references/faq/install/#i-want-to-use-sqlite
|
||||
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
|
||||
# Use "pgsql" for PostgreSQL
|
||||
# Use "mysql" for MySQL and MariaDB.
|
||||
# Use "sqlite" for SQLite.
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=db
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=firefly
|
||||
DB_USERNAME=firefly
|
||||
DB_PASSWORD=secret_firefly_password
|
||||
# leave empty or omit when not using a socket connection
|
||||
DB_SOCKET=
|
||||
|
||||
# MySQL supports SSL. You can configure it here.
|
||||
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
|
||||
MYSQL_USE_SSL=false
|
||||
MYSQL_SSL_VERIFY_SERVER_CERT=true
|
||||
# You need to set at least of these options
|
||||
MYSQL_SSL_CAPATH=/etc/ssl/certs/
|
||||
MYSQL_SSL_CA=
|
||||
MYSQL_SSL_CERT=
|
||||
MYSQL_SSL_KEY=
|
||||
MYSQL_SSL_CIPHER=
|
||||
|
||||
# If you're looking for performance improvements, you could install memcached or redis
|
||||
# Check https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example for Redis example
|
||||
CACHE_DRIVER=file
|
||||
SESSION_DRIVER=file
|
||||
|
||||
# Cookie settings. Should not be necessary to change these.
|
||||
# If you use Docker or similar, you can set COOKIE_DOMAIN_FILE to set
|
||||
# the value from a file instead of from an environment variable
|
||||
# Setting samesite to "strict" may give you trouble logging in.
|
||||
COOKIE_PATH="/"
|
||||
COOKIE_DOMAIN=
|
||||
COOKIE_SECURE=false
|
||||
COOKIE_SAMESITE=lax
|
||||
|
||||
# If you want Firefly III to email you, update these settings
|
||||
# For instructions, see: https://docs.firefly-iii.org/how-to/firefly-iii/advanced/notifications/#email
|
||||
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
|
||||
#MAIL_MAILER=log
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=smtp-relay.sendinblue.com
|
||||
MAIL_PORT=587
|
||||
MAIL_FROM=firefly@domain.tld
|
||||
MAIL_USERNAME=username
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
#MAIL_SENDMAIL_COMMAND=
|
||||
|
||||
# Firefly III can send you the following messages.
|
||||
SEND_ERROR_MESSAGE=true
|
||||
|
||||
# These messages contain (sensitive) transaction information:
|
||||
#SEND_REPORT_JOURNALS=true
|
||||
SEND_REPORT_JOURNALS=false
|
||||
|
||||
# Set this value to true if you want to set the location of certain things, like transactions.
|
||||
# Since this involves an external service, it's optional and disabled by default.
|
||||
ENABLE_EXTERNAL_MAP=false
|
||||
|
||||
#
|
||||
# Enable or disable exchange rate conversion. This function isn't used yet by Firefly III
|
||||
#
|
||||
ENABLE_EXCHANGE_RATES=false
|
||||
|
||||
# Set this value to true if you want Firefly III to download currency exchange rates
|
||||
# from the internet. These rates are hosted by the creator of Firefly III inside
|
||||
# an Azure Storage Container.
|
||||
# Not all currencies may be available. Rates may be wrong.
|
||||
ENABLE_EXTERNAL_RATES=false
|
||||
|
||||
# The map will default to this location:
|
||||
MAP_DEFAULT_LAT=51.983333
|
||||
MAP_DEFAULT_LONG=5.916667
|
||||
MAP_DEFAULT_ZOOM=6
|
||||
|
||||
#
|
||||
# Some objects have room for an URL, like transactions and webhooks.
|
||||
# By default, the following protocols are allowed:
|
||||
# http, https, ftp, ftps, mailto
|
||||
#
|
||||
# To change this, set your preferred comma separated set below.
|
||||
# Be sure to include http, https and other default ones if you need to.
|
||||
#
|
||||
VALID_URL_PROTOCOLS=
|
||||
|
||||
#
|
||||
# Firefly III authentication settings
|
||||
#
|
||||
|
||||
#
|
||||
# Firefly III supports a few authentication methods:
|
||||
# - 'web' (default, uses built in DB)
|
||||
# - 'remote_user_guard' for Authelia etc
|
||||
# Read more about these settings in the documentation.
|
||||
# https://docs.firefly-iii.org/how-to/firefly-iii/advanced/authentication/
|
||||
#
|
||||
# LDAP is no longer supported :(
|
||||
#
|
||||
AUTHENTICATION_GUARD=web
|
||||
|
||||
#
|
||||
# Remote user guard settings
|
||||
#
|
||||
AUTHENTICATION_GUARD_HEADER=REMOTE_USER
|
||||
AUTHENTICATION_GUARD_EMAIL=
|
||||
|
||||
#
|
||||
# Firefly III generates a basic keypair for your OAuth tokens.
|
||||
# If you want, you can overrule the key with your own (secure) value.
|
||||
# It's also possible to set PASSPORT_PUBLIC_KEY_FILE or PASSPORT_PRIVATE_KEY_FILE
|
||||
# if you're using Docker secrets or similar solutions for secret management
|
||||
#
|
||||
PASSPORT_PRIVATE_KEY=
|
||||
PASSPORT_PUBLIC_KEY=
|
||||
|
||||
#
|
||||
# Extra authentication settings
|
||||
#
|
||||
CUSTOM_LOGOUT_URL=
|
||||
|
||||
# You can disable the X-Frame-Options header if it interferes with tools like
|
||||
# Organizr. This is at your own risk. Applications running in frames run the risk
|
||||
# of leaking information to their parent frame.
|
||||
DISABLE_FRAME_HEADER=false
|
||||
|
||||
# You can disable the Content Security Policy header when you're using an ancient browser
|
||||
# or any version of Microsoft Edge / Internet Explorer (which amounts to the same thing really)
|
||||
# This leaves you with the risk of not being able to stop XSS bugs should they ever surface.
|
||||
# This is at your own risk.
|
||||
DISABLE_CSP_HEADER=false
|
||||
|
||||
# If you wish to track your own behavior over Firefly III, set valid analytics tracker information here.
|
||||
# Nobody uses this except for me on the demo site. But hey, feel free to use this if you want to.
|
||||
# Do not prepend the TRACKER_URL with http:// or https://
|
||||
# The only tracker supported is Matomo.
|
||||
# You can set the following variables from a file by appending them with _FILE:
|
||||
TRACKER_SITE_ID=
|
||||
TRACKER_URL=
|
||||
|
||||
#
|
||||
# Firefly III supports webhooks. These are security sensitive and must be enabled manually first.
|
||||
#
|
||||
ALLOW_WEBHOOKS=false
|
||||
|
||||
#
|
||||
# The static cron job token can be useful when you use Docker and wish to manage cron jobs.
|
||||
# 1. Set this token to any 32-character value (this is important!).
|
||||
# 2. Use this token in the cron URL instead of a user's command line token that you can find in /profile
|
||||
#
|
||||
# For more info: https://docs.firefly-iii.org/how-to/firefly-iii/advanced/cron/
|
||||
#
|
||||
# You can set this variable from a file by appending it with _FILE
|
||||
#
|
||||
STATIC_CRON_TOKEN=ChangeThisValueToSomeSecret
|
||||
|
||||
# You can fine tune the start-up of a Docker container by editing these environment variables.
|
||||
# Use this at your own risk. Disabling certain checks and features may result in lots of inconsistent data.
|
||||
# However if you know what you're doing you can significantly speed up container start times.
|
||||
# Set each value to true to enable, or false to disable.
|
||||
|
||||
# Set this to true to build all locales supported by Firefly III.
|
||||
# This may take quite some time (several minutes) and is generally not recommended.
|
||||
# If you wish to change or alter the list of locales, start your Docker container with
|
||||
# `docker run -v locale.gen:/etc/locale.gen -e DKR_BUILD_LOCALE=true`
|
||||
# and make sure your preferred locales are in your own locale.gen.
|
||||
DKR_BUILD_LOCALE=false
|
||||
|
||||
# Check if the SQLite database exists. Can be skipped if you're not using SQLite.
|
||||
# Won't significantly speed up things.
|
||||
DKR_CHECK_SQLITE=true
|
||||
|
||||
# Run database creation and migration commands. Disable this only if you're 100% sure the DB exists
|
||||
# and is up to date.
|
||||
DKR_RUN_MIGRATION=true
|
||||
|
||||
# Run database upgrade commands. Disable this only when you're 100% sure your DB is up-to-date
|
||||
# with the latest fixes (outside of migrations!)
|
||||
DKR_RUN_UPGRADE=true
|
||||
|
||||
# Verify database integrity. Includes all data checks and verifications.
|
||||
# Disabling this makes Firefly III assume your DB is intact.
|
||||
DKR_RUN_VERIFY=true
|
||||
|
||||
# Run database reporting commands. When disabled, Firefly III won't go over your data to report current state.
|
||||
# Disabling this should have no impact on data integrity or safety but it won't warn you of possible issues.
|
||||
DKR_RUN_REPORT=true
|
||||
|
||||
# Generate OAuth2 keys.
|
||||
# When disabled, Firefly III won't attempt to generate OAuth2 Passport keys. This won't be an issue, IFF (if and only if)
|
||||
# you had previously generated keys already and they're stored in your database for restoration.
|
||||
DKR_RUN_PASSPORT_INSTALL=true
|
||||
|
||||
# Leave the following configuration vars as is.
|
||||
# Unless you like to tinker and know what you're doing.
|
||||
APP_NAME=FireflyIII
|
||||
BROADCAST_DRIVER=log
|
||||
QUEUE_DRIVER=sync
|
||||
CACHE_PREFIX=firefly
|
||||
PUSHER_KEY=
|
||||
IPINFO_TOKEN=
|
||||
PUSHER_SECRET=
|
||||
PUSHER_ID=
|
||||
DEMO_USERNAME=
|
||||
DEMO_PASSWORD=
|
||||
|
||||
#
|
||||
# The v2 layout is very experimental. If it breaks you get to keep both parts.
|
||||
# Be wary of data loss.
|
||||
#
|
||||
FIREFLY_III_LAYOUT=v1
|
2
firefly-iii/db/.gitignore
vendored
Normal file
2
firefly-iii/db/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
50
firefly-iii/docker-compose.yml
Normal file
50
firefly-iii/docker-compose.yml
Normal file
|
@ -0,0 +1,50 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'fireflyiii/core:${IMAGE_TAG:-latest}'
|
||||
hostname: app
|
||||
container_name: firefly_iii_core
|
||||
restart: always
|
||||
volumes:
|
||||
- '${UPLOAD_DIR:-./upload}:/var/www/html/storage/upload'
|
||||
env_file: .env
|
||||
networks:
|
||||
- firefly_iii
|
||||
ports:
|
||||
- '${WEB_BIND_ADDR:-127.0.0.1}:${WEB_BIND_PORT:-8392}:8080/tcp'
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: mariadb:lts
|
||||
hostname: db
|
||||
container_name: firefly_iii_db
|
||||
restart: always
|
||||
env_file: .env
|
||||
environment:
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
|
||||
MYSQL_USER: '${DB_USERNAME:-firefly}'
|
||||
MYSQL_PASSWORD: '${DB_PASSWORD}'
|
||||
MYSQL_DATABASE: '${DB_DATABASE:-firefly}'
|
||||
networks:
|
||||
- firefly_iii
|
||||
volumes:
|
||||
- '${DB_DIR:-./db}:/var/lib/mysql'
|
||||
|
||||
cron:
|
||||
#
|
||||
# To make this work, set STATIC_CRON_TOKEN in your .env file or as an environment variable and replace REPLACEME below
|
||||
# The STATIC_CRON_TOKEN must be *exactly* 32 characters long
|
||||
#
|
||||
image: alpine
|
||||
restart: always
|
||||
container_name: firefly_iii_cron
|
||||
env_file: .env
|
||||
command: sh -c "echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/${STATIC_CRON_TOKEN}\" | crontab - && crond -f -L /dev/stdout"
|
||||
networks:
|
||||
- firefly_iii
|
||||
|
||||
networks:
|
||||
firefly_iii:
|
||||
driver: bridge
|
23
firefly-iii/nginx/firefly.conf
Normal file
23
firefly-iii/nginx/firefly.conf
Normal file
|
@ -0,0 +1,23 @@
|
|||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name ff.domain.tld;
|
||||
|
||||
access_log /var/log/nginx/ff.domain.tld.access;
|
||||
error_log /var/log/nginx/ff.domain.tld.error;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_pass http://127.0.0.1:8392;
|
||||
}
|
||||
|
||||
#include config/gzip.conf;
|
||||
|
||||
# SSL config
|
||||
#include ssl/domain.tld.conf;
|
||||
}
|
2
firefly-iii/upload/.gitignore
vendored
Normal file
2
firefly-iii/upload/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
|
@ -1,7 +1,9 @@
|
|||
# see https://docs.gitea.io/en-us/install-with-docker/
|
||||
# see https://forgejo.org/docs/latest/admin/installation-docker/
|
||||
USER_UID=1000
|
||||
USER_GID=1000
|
||||
|
||||
IMAGE_TAG=1.21
|
||||
|
||||
HOST_DATA_DIR=./data
|
||||
HOST_PG_DATA_DIR=./db
|
||||
HTTP_BIND_ADDR=127.0.0.1
|
||||
|
@ -12,9 +14,9 @@ EXT_SSH_PORT=222
|
|||
# Leave default for embedded database
|
||||
DB_HOST=db
|
||||
DB_PORT=5432
|
||||
DB_NAME=gitea
|
||||
DB_USER=gitea
|
||||
DB_PASSWD=gitea
|
||||
DB_NAME=forgejo
|
||||
DB_USER=forgejo
|
||||
DB_PASSWD=forgejo
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
forgejo/data/.gitignore
vendored
Normal file
2
forgejo/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
21
forgejo/docker-compose.yml
Normal file
21
forgejo/docker-compose.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
server:
|
||||
image: "codeberg.org/forgejo/forgejo:${IMAGE_TAG:-1.21}"
|
||||
container_name: forgejo
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
ports:
|
||||
- "${HTTP_BIND_ADDR:-127.0.0.1}:${EXT_HTTP_PORT:-3000}:3000"
|
||||
- "${EXT_SSH_PORT:-222}:22"
|
||||
volumes:
|
||||
- "${HOST_DATA_DIR:-./data}:/data"
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
- "FORGEJO__database__DB_TYPE=postgres"
|
||||
- "FORGEJO__database__HOST=${DB_HOST:-db}:${DB_PORT:-5432}"
|
||||
- "FORGEJO__database__NAME=${DB_NAME:-forgejo}"
|
||||
- "FORGEJO__database__USER=${DB_USER:-forgejo}"
|
||||
- "FORGEJO__database__PASSWD=${DB_PASSWD:-forgejo}"
|
|
@ -1,18 +1,18 @@
|
|||
version: '3.7'
|
||||
|
||||
networks:
|
||||
gitea:
|
||||
forgejo:
|
||||
external: false
|
||||
|
||||
services:
|
||||
server:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
image: "codeberg.org/forgejo/forgejo:${IMAGE_TAG:-1.21}"
|
||||
container_name: forgejo
|
||||
depends_on:
|
||||
- db
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- gitea
|
||||
- forgejo
|
||||
ports:
|
||||
- "${HTTP_BIND_ADDR:-127.0.0.1}:${EXT_HTTP_PORT:-3000}:3000"
|
||||
- "${EXT_SSH_PORT:-222}:22"
|
||||
|
@ -21,20 +21,20 @@ services:
|
|||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- "GITEA__database__HOST=${DB_HOST:-db}:${DB_PORT:-5432}"
|
||||
- "GITEA__database__NAME=${DB_NAME:-gitea}"
|
||||
- "GITEA__database__USER=${DB_USER:-gitea}"
|
||||
- "GITEA__database__PASSWD=${DB_PASSWD:-gitea}"
|
||||
- "FORGEJO__database__DB_TYPE=postgres"
|
||||
- "FORGEJO__database__HOST=${DB_HOST:-db}:${DB_PORT:-5432}"
|
||||
- "FORGEJO__database__NAME=${DB_NAME:-forgejo}"
|
||||
- "FORGEJO__database__USER=${DB_USER:-forgejo}"
|
||||
- "FORGEJO__database__PASSWD=${DB_PASSWD:-forgejo}"
|
||||
|
||||
db:
|
||||
image: postgres:13
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- "POSTGRES_USER=${DB_USER:-gitea}"
|
||||
- "POSTGRES_PASSWORD=${DB_PASSWD:-gitea}"
|
||||
- "POSTGRES_DB=${DB_NAME:-gitea}"
|
||||
- "POSTGRES_USER=${DB_USER:-forgejo}"
|
||||
- "POSTGRES_PASSWORD=${DB_PASSWD:-forgejo}"
|
||||
- "POSTGRES_DB=${DB_NAME:-forgejo}"
|
||||
networks:
|
||||
- gitea
|
||||
- forgejo
|
||||
volumes:
|
||||
- "${HOST_PG_DATA_DIR:-./db}:/var/lib/postgresql/data"
|
|
@ -20,4 +20,4 @@ server {
|
|||
|
||||
# SSL config
|
||||
#include ssl/domain.tld.conf;
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
server:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
ports:
|
||||
- "${HTTP_BIND_ADDR:-127.0.0.1}:${EXT_HTTP_PORT:-3000}:3000"
|
||||
- "${EXT_SSH_PORT:-222}:22"
|
||||
volumes:
|
||||
- "${HOST_DATA_DIR:-./data}:/data"
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
environment:
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- "GITEA__database__HOST=${DB_HOST:-db}:${DB_PORT:-5432}"
|
||||
- "GITEA__database__NAME=${DB_NAME:-gitea}"
|
||||
- "GITEA__database__USER=${DB_USER:-gitea}"
|
||||
- "GITEA__database__PASSWD=${DB_PASSWD:-gitea}"
|
31
hedgedoc/.env.dist
Normal file
31
hedgedoc/.env.dist
Normal file
|
@ -0,0 +1,31 @@
|
|||
# https://hub.docker.com/r/linuxserver/hedgedoc
|
||||
# https://docs.hedgedoc.org/configuration/
|
||||
|
||||
#IMAGE_TAG=latest
|
||||
|
||||
USER_ID=1000
|
||||
GROUP_ID=1000
|
||||
|
||||
WEB_ADDRESS=127.0.0.1
|
||||
WEB_PORT=8394
|
||||
|
||||
DOMAIN=hedgedoc.domain.tld
|
||||
|
||||
DIR_CONFIG=./config
|
||||
|
||||
DATABASE_HOST=host.docker.internal
|
||||
DATABASE_PORT=3306
|
||||
#DATABASE_NAME=hedgedoc
|
||||
#DATABASE_USER=hedgedoc
|
||||
DATABASE_PASS=*ChangeMe*
|
||||
#DATABASE_DIALECT=postgres
|
||||
|
||||
TIMEZONE=Europe/Moscow
|
||||
|
||||
#CMD_ALLOW_GRAVATAR=false
|
||||
|
||||
# https://docs.hedgedoc.org/configuration/#login-methods
|
||||
|
||||
# Github Login
|
||||
#CMD_GITHUB_CLIENTID=123
|
||||
#CMD_GITHUB_CLIENTSECRET=456
|
2
hedgedoc/config/.gitignore
vendored
Normal file
2
hedgedoc/config/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
32
hedgedoc/docker-compose.yml
Normal file
32
hedgedoc/docker-compose.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
services:
|
||||
hedgedoc:
|
||||
image: 'lscr.io/linuxserver/hedgedoc:${IMAGE_TAG:-latest}'
|
||||
container_name: 'hedgedoc'
|
||||
env_file: '.env'
|
||||
environment:
|
||||
- 'PUID=${USER_ID:-1000}'
|
||||
- 'PGID=${GROUP_ID:-1000}'
|
||||
- 'TZ=${TIMEZONE:-Europe/Moscow}'
|
||||
- 'DB_HOST=${DATABASE_HOST:-host.docker.internal}'
|
||||
- 'DB_PORT=${DATABASE_PORT:-3306}'
|
||||
- 'DB_USER=${DATABASE_USER:-hedgedoc}'
|
||||
- 'DB_PASS=${DATABASE_PASS}'
|
||||
- 'DB_NAME=${DATABASE_NAME:-hedgedoc}'
|
||||
- 'CMD_DOMAIN=${DOMAIN}'
|
||||
#- 'CMD_URL_ADDPORT=false' #optional
|
||||
- 'CMD_PROTOCOL_USESSL=true' #optional
|
||||
- 'CMD_PORT=${WEB_PORT:-8394}' #optional
|
||||
- 'CMD_DB_DIALECT=${DATABASE_DIALECT:-mariadb}' #optional
|
||||
- CMD_ALLOW_ORIGIN=['${DOMAIN}'] #optional
|
||||
volumes:
|
||||
- '${DIR_CONFIG:-./config}:/config'
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- '${WEB_ADDRESS:-127.0.0.1}:${WEB_PORT:-8394}:${WEB_PORT:-8394}'
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: 'json-file'
|
||||
options:
|
||||
max-size: '${LOG_MAX_SIZE:-5m}'
|
||||
max-file: '${LOG_MAX_FILE:-5}'
|
44
hedgedoc/nginx/hedgedoc.conf
Normal file
44
hedgedoc/nginx/hedgedoc.conf
Normal file
|
@ -0,0 +1,44 @@
|
|||
upstream hedgedoc {
|
||||
server 127.0.0.1:8394;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name hedgedoc.domain.tld;
|
||||
|
||||
access_log /var/log/nginx/hedgedoc.domain.tld.access;
|
||||
error_log /var/log/nginx/hedgedoc.domain.tld.error;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://hedgedoc;
|
||||
}
|
||||
|
||||
location /socket.io/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://hedgedoc;
|
||||
}
|
||||
|
||||
include config/gzip.conf;
|
||||
|
||||
# Wildcard certificate config
|
||||
include ssl/domain.tld.conf;
|
||||
}
|
8
home-assistant/.env.dist
Normal file
8
home-assistant/.env.dist
Normal file
|
@ -0,0 +1,8 @@
|
|||
# see https://www.home-assistant.io/installation/linux#install-home-assistant-container
|
||||
|
||||
#IMAGE_TAG=stable
|
||||
|
||||
HOST_CONFIG_DIR=./config
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
17
home-assistant/README.md
Normal file
17
home-assistant/README.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Home Assistant
|
||||
|
||||
## Using with reverse proxy (like Nginx)
|
||||
|
||||
If you're using Home Assistant with reverse proxy, you need to enable it and add trusted proxy address. Otherwise you
|
||||
will get 400 (Bad Request) each time you try to open HA's web interface.
|
||||
|
||||
To achieve that edit `configuration.yaml` after it was generated at first launch and add missing options.
|
||||
|
||||
```yaml
|
||||
# config/configuration.yaml
|
||||
http:
|
||||
use_x_forwarded_for: true
|
||||
trusted_proxies:
|
||||
- '127.0.0.1'
|
||||
- '::1'
|
||||
```
|
2
home-assistant/config/.gitignore
vendored
Normal file
2
home-assistant/config/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
19
home-assistant/docker-compose.yml
Normal file
19
home-assistant/docker-compose.yml
Normal file
|
@ -0,0 +1,19 @@
|
|||
# https://www.home-assistant.io/installation/linux#install-home-assistant-container
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
homeassistant:
|
||||
container_name: homeassistant
|
||||
image: 'ghcr.io/home-assistant/home-assistant:${IMAGE_TAG:-stable}'
|
||||
volumes:
|
||||
- '${HOST_CONFIG_DIR:-./config}:/config'
|
||||
- '/etc/localtime:/etc/localtime:ro'
|
||||
restart: unless-stopped
|
||||
privileged: true
|
||||
network_mode: host
|
||||
env_file: .env
|
||||
logging:
|
||||
driver: 'json-file'
|
||||
options:
|
||||
max-size: '${LOG_MAX_SIZE:-5m}'
|
||||
max-file: '${LOG_MAX_FILE:-5}'
|
24
home-assistant/nginx/home-assistant.conf
Normal file
24
home-assistant/nginx/home-assistant.conf
Normal file
|
@ -0,0 +1,24 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name ha.domain.tld;
|
||||
|
||||
#charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
#proxy_hide_header X-Powered-By; ## Hides nginx server version from bad guys.
|
||||
proxy_set_header Range $http_range; ## Allows specific chunks of a file to be requested.
|
||||
proxy_set_header If-Range $http_if_range; ## Allows specific chunks of a file to be requested.
|
||||
#proxy_set_header X-Real-IP $http_CF_Connecting_IP; ## if you use cloudflare un-comment this line and comment out above line.
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_pass http://localhost:8123/;
|
||||
}
|
||||
}
|
26
inbucket/.env.dist
Normal file
26
inbucket/.env.dist
Normal file
|
@ -0,0 +1,26 @@
|
|||
HOST_SMTP_ADDR=0.0.0.0
|
||||
HOST_SMTP_PORT=2500
|
||||
HOST_POP3_ADDR=0.0.0.0
|
||||
HOST_POP3_PORT=1100
|
||||
HOST_HTTP_ADDR=0.0.0.0
|
||||
HOST_HTTP_PORT=8389
|
||||
|
||||
# https://github.com/inbucket/inbucket/blob/main/doc/config.md
|
||||
INBUCKET_STORAGE_TYPE=memory
|
||||
INBUCKET_STORAGE_RETENTIONPERIOD=24h
|
||||
INBUCKET_STORAGE_MAILBOXMSGCAP=500
|
||||
|
||||
INBUCKET_WEB_MONITORVISIBLE=true
|
||||
INBUCKET_WEB_MONITORHISTORY=30
|
||||
|
||||
INBUCKET_POP3_DOMAIN=inbucket
|
||||
INBUCKET_SMTP_DOMAIN=inbucket
|
||||
#INBUCKET_SMTP_ACCEPTDOMAINS=
|
||||
#INBUCKET_SMTP_REJECTDOMAINS=
|
||||
INBUCKET_SMTP_DEFAULTSTORE=true
|
||||
#INBUCKET_SMTP_STOREDOMAINS=
|
||||
#INBUCKET_SMTP_DISCARDDOMAINS=
|
||||
# Use local or full addressing
|
||||
INBUCKET_MAILBOXNAMING=local
|
||||
# debug, info, warn, or error
|
||||
INBUCKET_LOGLEVEL=warn
|
2
inbucket/data/.gitignore
vendored
Normal file
2
inbucket/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
*
|
||||
!.gitignore
|
15
inbucket/docker-compose.yml
Normal file
15
inbucket/docker-compose.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
inbucket:
|
||||
image: inbucket/inbucket:latest
|
||||
container_name: inbucket
|
||||
ports:
|
||||
- "${HOST_HTTP_ADDR:-0.0.0.0}:${HOST_HTTP_PORT:-8389}:9000/tcp"
|
||||
- "${HOST_SMTP_ADDR:-0.0.0.0}:${HOST_SMTP_PORT:-8389}:2500/tcp"
|
||||
- "${HOST_POP3_ADDR:-0.0.0.0}:${HOST_POP3_PORT:-8389}:1100/tcp"
|
||||
volumes:
|
||||
# Not used by default, you need to configure storage parameters to store on disk.
|
||||
- ./data:/data/
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
|
@ -1,16 +0,0 @@
|
|||
# see # https://hub.docker.com/r/jaymoulin/jdownloader
|
||||
HOST_USER=1000
|
||||
HOST_GROUP=1000
|
||||
|
||||
CONFIG_PATH=./config/config
|
||||
LOGS_PATH=./config/logs
|
||||
DOWNLOADS_PATH=./data
|
||||
|
||||
MYJD_BIND_PORT=3129
|
||||
|
||||
MYJD_USER=xxx@yyy.tld
|
||||
MYJD_PASSWORD=qwerty
|
||||
MYJD_DEVICE_NAME=mydevice
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
jdownloader/config/.gitignore
vendored
2
jdownloader/config/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/*
|
||||
!/.gitignore
|
2
jdownloader/data/.gitignore
vendored
2
jdownloader/data/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/*
|
||||
!/.gitignore
|
|
@ -1,27 +0,0 @@
|
|||
# https://hub.docker.com/r/jaymoulin/jdownloader
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
jdownloader:
|
||||
image: jaymoulin/jdownloader
|
||||
container_name: jdownloader
|
||||
restart: unless-stopped
|
||||
user: "${HOST_USER}:${HOST_GROUP}"
|
||||
volumes:
|
||||
- "${CONFIG_PATH:-./config/config}:/opt/JDownloader/app/cfg"
|
||||
- "${DOWNLOADS_PATH:-./data}:/opt/JDownloader/Downloads"
|
||||
- "${LOGS_PATH:-./config/logs}:/opt/JDownloader/app/logs" #optional
|
||||
- /etc/localtime:/etc/localtime:ro #optional
|
||||
env_file: ".env"
|
||||
#environment:
|
||||
#MYJD_USER: email@email.com #optional (see [Identify](https://github.com/jaymoulin/docker-jdownloader#identify))
|
||||
#MYJD_PASSWORD: bar #optional (see [Identify](https://github.com/jaymoulin/docker-jdownloader#identify))
|
||||
#MYJD_DEVICE_NAME: "${MYJD_DEVICE_NAME}" #optional
|
||||
#XDG_DOWNLOAD_DIR: /opt/JDownloader/Downloads #optional
|
||||
ports:
|
||||
- "${MYJD_BIND_PORT:-3129}:3129"
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
|
@ -1,11 +0,0 @@
|
|||
DB_CLIENT=pg
|
||||
POSTGRES_PASSWORD=joplin
|
||||
POSTGRES_DATABASE=joplin
|
||||
POSTGRES_USER=joplin
|
||||
POSTGRES_PORT=5432
|
||||
#POSTGRES_HOST=db
|
||||
|
||||
APP_BASE_URL=https://domain.tld
|
||||
|
||||
APP_PORT=22300
|
||||
EXTERNAL_PORT=8030
|
2
joplin/data/.gitignore
vendored
2
joplin/data/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/*
|
||||
!/.gitignore
|
|
@ -1,22 +0,0 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
db:
|
||||
image: postgres:13
|
||||
volumes:
|
||||
- ./data/postgres:/var/lib/postgresql/data
|
||||
expose:
|
||||
- "5432"
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
|
||||
app:
|
||||
image: joplin/server:latest
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
- "127.0.0.1:${EXTERNAL_PORT:-8030}:22300"
|
||||
env_file: .env
|
||||
environment:
|
||||
- POSTGRES_HOST=${POSTGRES_HOST:-db}
|
||||
restart: unless-stopped
|
||||
user: '${HOST_USER:-0}'
|
|
@ -1,17 +0,0 @@
|
|||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name joplin.domain.tld;
|
||||
|
||||
access_log /var/log/nginx/joplin.domain.tld.access;
|
||||
error_log /var/log/nginx/joplin.domain.tld.error;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass http://127.0.0.1:8030;
|
||||
}
|
||||
|
||||
# Wildcard certificate config
|
||||
#include ssl/joplin.domain.tld.conf;
|
||||
}
|
35
magnetico-web/.env.dist
Normal file
35
magnetico-web/.env.dist
Normal file
|
@ -0,0 +1,35 @@
|
|||
# For up-to-date reference check: https://git.skobk.in/skobkin/magnetico-web/src/branch/master/.env
|
||||
|
||||
APP_SECRET=abcxyz
|
||||
|
||||
APP_DATABASE_URL=postgres://magnetico-web:password@host.docker.internal:5432/magnetico-web?application_name=magnetico_web
|
||||
MAGNETICOD_DATABASE_URL=postgres://magneticod:password@host.docker.internal:5432/magneticod?application_name=magnetico_web
|
||||
|
||||
REDIS_DSN=redis://host.docker.internal:6379/0
|
||||
|
||||
# !!! USE 'REMOTE_ADDR' ONLY BEHIND REVERSE PROXY !!!
|
||||
TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
|
||||
|
||||
###> sentry/sentry-symfony ###
|
||||
SENTRY_DSN=https://abcxyz@sentry.io/123456
|
||||
###< sentry/sentry-symfony ###
|
||||
|
||||
###> symfony/mailer ###
|
||||
MAILER_DSN=smtp://mail@domain.tld:password@smtp.domain.tld:587
|
||||
MAILER_FROM=no-reply@domain.tld
|
||||
###< symfony/mailer ###
|
||||
|
||||
###> excelwebzone/recaptcha-bundle ###
|
||||
EWZ_RECAPTCHA_SITE_KEY=key
|
||||
EWZ_RECAPTCHA_SECRET=secret
|
||||
###< excelwebzone/recaptcha-bundle ###
|
||||
|
||||
# docker-compose
|
||||
|
||||
LOG_PATH=./logs
|
||||
|
||||
#HOST_USER=0
|
||||
#HOST_USER=www-data
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
magnetico-web/.gitignore
vendored
Normal file
2
magnetico-web/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
logs/*
|
||||
!logs/.gitkeep
|
21
magnetico-web/docker-compose.yml
Normal file
21
magnetico-web/docker-compose.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
magnetico-web:
|
||||
image: skobkin/magnetico-web
|
||||
container_name: magnetico-web
|
||||
hostname: magnetico-web
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- "127.0.0.1:${EXT_HTTP_PORT:-8080}:8080/tcp"
|
||||
restart: unless-stopped
|
||||
user: "${HOST_USER:-0}"
|
||||
volumes:
|
||||
- "${LOG_PATH:-./logs}:/app/var/log"
|
||||
env_file: .env
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
|
@ -1,6 +0,0 @@
|
|||
# see https://cloud.docker.com/repository/docker/skobkin/magneticod-python
|
||||
MAGNETICO_PORT=64879
|
||||
|
||||
# docker-compose substitution
|
||||
HOST_DB_PATH=/root/.local/share/magneticod
|
||||
HOST_USER=0
|
|
@ -1,17 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
magneticod:
|
||||
image: skobkin/magneticod-python:latest
|
||||
container_name: magneticod-python
|
||||
# Using host mode to be able to simply apply firewall rules to disable connection tracking
|
||||
# https://github.com/boramalper/magnetico/blob/master/cmd/magneticod/README.md#setup
|
||||
network_mode: "host"
|
||||
ports:
|
||||
- "${MAGNETICO_PORT}:${MAGNETICO_PORT}/udp"
|
||||
env_file: .env
|
||||
volumes:
|
||||
- "${HOST_DB_PATH}:/data"
|
||||
user: "${HOST_USER}"
|
||||
restart: unless-stopped
|
||||
command: "--node-addr 0.0.0.0:${MAGNETICO_PORT} --database-file /data/database.sqlite3"
|
|
@ -6,7 +6,9 @@ services:
|
|||
container_name: magneticod
|
||||
# Using host mode to be able to simply apply firewall rules to disable connection tracking
|
||||
# https://github.com/boramalper/magnetico/blob/master/cmd/magneticod/README.md#setup
|
||||
network_mode: "host"
|
||||
#network_mode: "host"
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- "${MAGNETICO_PORT}:${MAGNETICO_PORT}/udp"
|
||||
env_file: .env
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
MYSQL_ROOT_PASSWORD=password
|
||||
COMMON_DATABASE_NETWORK=database-net
|
|
@ -1,23 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
mariadb-common:
|
||||
image: mariadb:10
|
||||
container_name: mariadb-common
|
||||
env_file: .env
|
||||
networks:
|
||||
- db-network
|
||||
ports:
|
||||
- "127.0.0.1:3306:3306/tcp"
|
||||
volumes:
|
||||
# Database files
|
||||
- mariadb-data:/var/lib/mysql
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
mariadb-data:
|
||||
|
||||
networks:
|
||||
db-network:
|
||||
name: "${COMMON_DATABASE_NETWORK:-database-network}"
|
||||
external: true
|
12
mautrix-telegram/.env.dist
Normal file
12
mautrix-telegram/.env.dist
Normal file
|
@ -0,0 +1,12 @@
|
|||
# see https://mau.dev/mautrix/telegram/
|
||||
IMAGE_VERSION=latest
|
||||
|
||||
HOST_USER=1337
|
||||
HOST_GROUP=1337
|
||||
|
||||
# Do not modify unless you know what you're doing!
|
||||
# It is used by 'synapse' stack.
|
||||
#HOST_DATA_DIR=./data
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
16
mautrix-telegram/README.md
Normal file
16
mautrix-telegram/README.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Telegram Bridge for Matrix
|
||||
|
||||
## Create internal network for Matrix services
|
||||
|
||||
You should've created this network while setting up [synapse](../synapse/README.md). But if you didn't, then do it
|
||||
before trying to run this stack:
|
||||
|
||||
```shell
|
||||
docker network create --internal matrix
|
||||
```
|
||||
|
||||
## Bridge setup documentation
|
||||
|
||||
- https://docs.mau.fi/bridges/python/setup/docker.html?bridge=telegram
|
||||
- https://docs.mau.fi/bridges/general/registering-appservices.html
|
||||
- https://docs.mau.fi/bridges/python/telegram/relay-bot.html (optional)
|
2
mautrix-telegram/data/.gitignore
vendored
Normal file
2
mautrix-telegram/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
30
mautrix-telegram/docker-compose.yml
Normal file
30
mautrix-telegram/docker-compose.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
# https://mau.dev/mautrix/telegram/
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
mautrix-telegram:
|
||||
image: "dock.mau.dev/mautrix/telegram:${IMAGE_VERSION:-latest}"
|
||||
container_name: mautrix-telegram
|
||||
volumes:
|
||||
# This volume is also used by 'synapse' stack.
|
||||
# Do not change the path unless you know what you're doing.
|
||||
- "${HOST_DATA_DIR:-./data}:/data"
|
||||
env_file: .env
|
||||
environment:
|
||||
UID: "${HOST_USER:-1337}"
|
||||
GID: "${HOST_GROUP:-1337}"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
networks:
|
||||
- default
|
||||
- matrix
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
|
||||
networks:
|
||||
matrix:
|
||||
external: true
|
|
@ -22,4 +22,3 @@ services:
|
|||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
# TODO: try to integrate with neilpang/acme.sh
|
|
@ -1,16 +0,0 @@
|
|||
PUID=1000
|
||||
PGID=1000
|
||||
|
||||
TZ=Europe/Moscow
|
||||
|
||||
EXT_PORT=8443
|
||||
|
||||
# Volumes
|
||||
# Database and configs
|
||||
CONFIG_PATH=/path/to/config
|
||||
# Location of user files
|
||||
DATA_PATH=/path/to/data
|
||||
|
||||
# Logs
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
|
@ -1,30 +0,0 @@
|
|||
# Configuration
|
||||
|
||||
## Serve HTTP from the container
|
||||
|
||||
By default NextCloud internal Nginx config has redirects from internal 80 port
|
||||
to 443 (HTTPS).
|
||||
So if you want to reverse-proxy Nextcloud, you'll need to have a plain HTTP
|
||||
connection to the Nextcloud.
|
||||
|
||||
Example of `/config/nginx/site-confs/default` changes:
|
||||
|
||||
```
|
||||
#server {
|
||||
# listen 80;
|
||||
# listen [::]:80;
|
||||
# server_name _;
|
||||
# return 301 https://$host$request_uri;
|
||||
#}
|
||||
server {
|
||||
#listen 443 ssl http2;
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
#listen [::]:443 ssl http2;
|
||||
server_name _;
|
||||
#ssl_certificate /config/keys/cert.crt;
|
||||
#ssl_certificate_key /config/keys/cert.key;
|
||||
```
|
||||
|
||||
You'll have access to the Nextcloud Nginx config after first run of Nextcloud
|
||||
container. Don't forget to configure `/config` bind mount.
|
|
@ -1,21 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
nextcloud:
|
||||
# https://hub.docker.com/r/linuxserver/nextcloud
|
||||
image: linuxserver/nextcloud
|
||||
container_name: nextcloud
|
||||
#network_mode: "host"
|
||||
ports:
|
||||
# You need to modify /config/nginx/site-confs/default first to allow 80 port
|
||||
- "127.0.0.1:${EXT_PORT}:80/tcp"
|
||||
env_file: .env
|
||||
volumes:
|
||||
- "${CONFIG_PATH}:/config"
|
||||
- "${DATA_PATH}:/data"
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
|
@ -1,18 +0,0 @@
|
|||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name nextcloud.server.tld;
|
||||
|
||||
#access_log /var/log/nginx/nextcloud.server.tld.access;
|
||||
error_log /var/log/nginx/nextcloud.server.tld.error;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8443;
|
||||
}
|
||||
|
||||
#include config/gzip.conf;
|
||||
|
||||
# Wildcard certificate config
|
||||
#include ssl/server.tld.conf;
|
||||
}
|
24
ollama/.env.dist
Normal file
24
ollama/.env.dist
Normal file
|
@ -0,0 +1,24 @@
|
|||
# see https://hub.docker.com/r/ollama/ollama
|
||||
#OLLAMA_IMAGE_TAG=rocm
|
||||
#OLLAMA_IMAGE_TAG=0.1.28-rocm
|
||||
OLLAMA_IMAGE_TAG=latest
|
||||
UI_IMAGE_TAG=main
|
||||
|
||||
# Ollama
|
||||
HOST_OLLAMA_DATA_DIR=./data/ollama
|
||||
HTTP_OLLAMA_BIND_ADDR=127.0.0.1
|
||||
HTTP_OLLAMA_BIND_PORT=11434
|
||||
DEV_KFD=/dev/kfd
|
||||
DEV_DRI=/dev/dri
|
||||
|
||||
# The duration that models stay loaded in memory (default is "5m"
|
||||
#OLLAMA_KEEP_ALIVE=5m
|
||||
|
||||
# Open WebUI
|
||||
HOST_UI_DATA_DIR=./data/open-webui
|
||||
HTTP_UI_BIND_ADDR=127.0.0.1
|
||||
HTTP_UI_BIND_PORT=8010
|
||||
UI_SECRET_KEY=changeme
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
ollama/data/ollama/.gitignore
vendored
Normal file
2
ollama/data/ollama/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
2
ollama/data/open-webui/.gitignore
vendored
Normal file
2
ollama/data/open-webui/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
38
ollama/docker-compose.yml
Normal file
38
ollama/docker-compose.yml
Normal file
|
@ -0,0 +1,38 @@
|
|||
version: '3.9'
|
||||
|
||||
services:
|
||||
webui:
|
||||
image: "ghcr.io/open-webui/open-webui:${UI_IMAGE_TAG:-main}"
|
||||
container_name: ollama-open-webui
|
||||
volumes:
|
||||
- "${HOST_UI_DATA_DIR:-./data/open-webui}:/app/backend/data"
|
||||
depends_on:
|
||||
- ollama
|
||||
ports:
|
||||
- "${HTTP_UI_BIND_ADDR:-127.0.0.1}:${HTTP_UI_BIND_PORT-3000}:8080"
|
||||
environment:
|
||||
- "OLLAMA_API_BASE_URL=http://ollama:11434/api"
|
||||
- "OLLAMA_BASE_URL=http://ollama:11434"
|
||||
- 'WEBUI_SECRET_KEY=${UI_SECRET_KEY:-changeme}'
|
||||
#extra_hosts:
|
||||
# - host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
|
||||
ollama:
|
||||
image: "ollama/ollama:${OLLAMA_IMAGE_TAG:-latest}"
|
||||
container_name: ollama
|
||||
#user: "${HOST_USER:-1000}"
|
||||
volumes:
|
||||
- "${HOST_OLLAMA_DATA_DIR:-./data}:/root/.ollama"
|
||||
ports:
|
||||
- "${HTTP_OLLAMA_BIND_ADDR:-127.0.0.1}:${HTTP_OLLAMA_BIND_PORT:-11434}:11434/tcp"
|
||||
devices:
|
||||
- "${DEV_DRI:-/dev/dri}:${DEV_DRI:-/dev/dri}"
|
||||
- "${DEV_KFD:-/dev/kfd}:${DEV_KFD:-/dev/kfd}"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
22
ollama/nginx/ollama-webui.conf
Normal file
22
ollama/nginx/ollama-webui.conf
Normal file
|
@ -0,0 +1,22 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name ai.domain.tld;
|
||||
|
||||
#charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $http_connection;
|
||||
|
||||
proxy_read_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
|
||||
proxy_pass http://127.0.0.1:8010/;
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
POSTGRES_PASSWORD=password
|
||||
COMMON_DATABASE_NETWORK=database-net
|
|
@ -1,23 +0,0 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
postgres-common:
|
||||
image: postgres:12-alpine
|
||||
container_name: postgres-common
|
||||
env_file: .env
|
||||
networks:
|
||||
- db-network
|
||||
ports:
|
||||
- "127.0.0.1:5432:5432/tcp"
|
||||
volumes:
|
||||
# Database files
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
|
||||
networks:
|
||||
db-network:
|
||||
name: "${COMMON_DATABASE_NETWORK:-database-network}"
|
||||
external: true
|
|
@ -1,7 +1,11 @@
|
|||
# https://hub.docker.com/_/redis
|
||||
|
||||
# Uncomment to use directory binding instead of docker volume (almost always not needed)
|
||||
#DATA_PATH=/some/path
|
||||
HOST_DATA_DIR=./data
|
||||
# https://redis.io/docs/management/persistence/#snapshotting
|
||||
PERSISTENCE_PERIOD_SEC=60
|
||||
PERSISTENCE_MIN_OPS=1
|
||||
LOG_LEVEL=warning
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
||||
|
|
2
redis/data/.gitignore
vendored
Normal file
2
redis/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
|
@ -1,10 +1,13 @@
|
|||
version: '3.7'
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
redis:
|
||||
# https://hub.docker.com/_/redis
|
||||
image: redis:alpine
|
||||
container_name: redis
|
||||
command: "redis-server --save ${PERSISTENCE_PERIOD_SEC:-60} ${PERSISTENCE_MIN_OPS:-1} --loglevel ${LOG_LEVEL:-warning}"
|
||||
volumes:
|
||||
- "${HOST_DATA_DIR:-./data}:/data"
|
||||
ports:
|
||||
- "127.0.0.1:6379:6379/tcp"
|
||||
env_file: .env
|
||||
|
@ -14,7 +17,3 @@ services:
|
|||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
|
||||
#volumes:
|
||||
# redis_data:
|
||||
# name: redis_data
|
||||
|
|
4
shadowsocks-client/.env.dist
Normal file
4
shadowsocks-client/.env.dist
Normal file
|
@ -0,0 +1,4 @@
|
|||
LOCAL_PORT=1050
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
3
shadowsocks-client/config/.gitignore
vendored
Normal file
3
shadowsocks-client/config/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*
|
||||
!.gitignore
|
||||
!config.json.dist
|
26
shadowsocks-client/config/config.json.dist
Normal file
26
shadowsocks-client/config/config.json.dist
Normal file
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"servers": [
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 8388,
|
||||
"password": "hello-world",
|
||||
"method": "aes-256-gcm",
|
||||
"timeout": 7200
|
||||
},
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 8389,
|
||||
"password": "hello-kitty",
|
||||
"method": "chacha20-ietf-poly1305"
|
||||
},
|
||||
{
|
||||
"disabled": true,
|
||||
"address": "eg.disable.me",
|
||||
"port": 8390,
|
||||
"password": "hello-internet",
|
||||
"method": "chacha20-ietf-poly1305"
|
||||
}
|
||||
],
|
||||
"local_port": 1050,
|
||||
"local_address": "0.0.0.0"
|
||||
}
|
18
shadowsocks-client/docker-compose.yml
Normal file
18
shadowsocks-client/docker-compose.yml
Normal file
|
@ -0,0 +1,18 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
sslocal:
|
||||
# https://github.com/shadowsocks/shadowsocks-rust
|
||||
image: ghcr.io/shadowsocks/sslocal-rust:latest
|
||||
container_name: sslocal
|
||||
ports:
|
||||
- "${LOCAL_PORT:-1050}:1050/tcp"
|
||||
volumes:
|
||||
- "./config/config.json:/etc/shadowsocks-rust/config.json:ro"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
16
sish/.env.dist
Normal file
16
sish/.env.dist
Normal file
|
@ -0,0 +1,16 @@
|
|||
# see https://hub.docker.com/r/antoniomika/sish
|
||||
IMAGE_VERSION=latest
|
||||
|
||||
HTTP_BIND_ADDR=127.0.0.1
|
||||
HTTP_BIND_PORT=8395
|
||||
|
||||
SSH_BIND_ADDR=0.0.0.0
|
||||
SSH_BIND_PORT=2222
|
||||
|
||||
PUBKEYS_PATH=./pubkeys
|
||||
|
||||
BASE_DOMAIN=si.sh
|
||||
|
||||
# Service settings
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
27
sish/docker-compose.yml
Normal file
27
sish/docker-compose.yml
Normal file
|
@ -0,0 +1,27 @@
|
|||
# https://hub.docker.com/r/antoniomika/sish
|
||||
|
||||
services:
|
||||
sish:
|
||||
image: 'antoniomika/sish:${IMAGE_VERSION:-latest}'
|
||||
container_name: sish
|
||||
volumes:
|
||||
- '${PUBKEYS_PATH:-./pubkeys}:/pubkeys'
|
||||
# see https://docs.ssi.sh/getting-started#docker
|
||||
command: |
|
||||
--ssh-address=${SSH_BIND_ADDR:-0.0.0.0}:${SSH_BIND_PORT:-2222}
|
||||
--http-address=:${HTTP_BIND_PORT:-8395}
|
||||
--authentication=true
|
||||
--authentication-keys-directory=/pubkeys
|
||||
--bind-random-ports=false
|
||||
--bind-random-subdomains=false
|
||||
--domain=${BASE_DOMAIN:-si.sh}
|
||||
#network_mode: host
|
||||
ports:
|
||||
- '${SSH_BIND_ADDR:-0.0.0.0}:${SSH_BIND_PORT:-2222}:${SSH_BIND_PORT:-2222}'
|
||||
- '${HTTP_BIND_ADDR:-127.0.0.1}:${HTTP_BIND_PORT:-8395}:${HTTP_BIND_PORT:-8395}'
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
36
sish/nginx/sish.conf
Normal file
36
sish/nginx/sish.conf
Normal file
|
@ -0,0 +1,36 @@
|
|||
upstream sish {
|
||||
server 127.0.0.1:8395;
|
||||
}
|
||||
|
||||
server {
|
||||
server_name *.sish.domain.tld;
|
||||
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Port $server_port;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
|
||||
proxy_read_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
|
||||
client_max_body_size 512M;
|
||||
|
||||
proxy_pass http://sish;
|
||||
}
|
||||
|
||||
#listen [::]:443 ssl http2 ipv6only=on;
|
||||
listen 443 ssl http2;
|
||||
|
||||
include /etc/nginx/ssl/sish.domain.tld.conf;
|
||||
|
||||
error_log /var/log/nginx/sish.domain.tld_error.log;
|
||||
access_log /var/log/nginx/sish.domain.tld.in_access.log;
|
||||
}
|
0
sish/pubkeys/.gitkeep
Normal file
0
sish/pubkeys/.gitkeep
Normal file
|
@ -27,5 +27,17 @@ SYNAPSE_REPORT_STATS=no
|
|||
#UID=991
|
||||
#GID=991
|
||||
|
||||
# Sliding sync settings
|
||||
SS_PROXY_IMAGE_TAG=latest
|
||||
|
||||
SYNCV3_SERVER=https://skobk.in
|
||||
SYNCV3_DB='user=matrix-ss dbname=matrix-ss sslmode=disable host=host.docker.internal password=database_password'
|
||||
SYNCV3_SECRET=very_long_and_random_secret
|
||||
SS_BIND_ADDR=0.0.0.0
|
||||
SS_BIND_PORT=8889
|
||||
|
||||
SS_EXT_ADR=127.0.0.1
|
||||
SS_EXT_PORT=8889
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
# [Synapse](https://matrix.org/docs/projects/server/synapse) ([Matrix.org](https://matrix.org/) server)
|
||||
|
||||
# Generating server configuration
|
||||
## Create internal network for Matrix services
|
||||
|
||||
```shell
|
||||
docker network create --internal matrix
|
||||
```
|
||||
|
||||
## Generate server configuration
|
||||
|
||||
Do not forget to prepare `.env` file before running this.
|
||||
|
||||
|
@ -15,7 +21,7 @@ If you want to use full-fledged PostgreSQL instead of SQLite, you can check
|
|||
|
||||
To use PostgreSQL running on the host machine, use [this](../_docs/access_database_on_host_from_docker.md) configuration.
|
||||
|
||||
# Running the server
|
||||
## Run the server
|
||||
|
||||
```shell
|
||||
docker-compose up -d
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
version: '3.7'
|
||||
|
||||
networks:
|
||||
# You need to create this network manually first!
|
||||
synapse:
|
||||
external: true
|
||||
|
||||
services:
|
||||
synapse:
|
||||
# https://hub.docker.com/r/matrixdotorg/synapse
|
||||
|
@ -14,19 +9,49 @@ services:
|
|||
hostname: synapse
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
networks:
|
||||
- default
|
||||
- synapse
|
||||
ports:
|
||||
- "${INTERFACE_EXT:-127.0.0.1}:${HTTP_PORT_EXT:-8008}:${HTTP_PORT_INT:-8008}/tcp"
|
||||
volumes:
|
||||
- "${DATA_PATH:-./data}:/data"
|
||||
# SSL certs directory
|
||||
- "${SSL_PATH:-./ssl}:/ssl:ro"
|
||||
# Bridges
|
||||
# Telegram
|
||||
- "../mautrix-telegram/data:/bridges/mautrix-telegram/data:ro"
|
||||
env_file: .env
|
||||
networks:
|
||||
- default
|
||||
- matrix
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
|
||||
sliding-sync:
|
||||
# https://github.com/matrix-org/sliding-sync
|
||||
image: "ghcr.io/matrix-org/sliding-sync:${SS_PROXY_IMAGE_TAG:-latest}"
|
||||
container_name: matrix-ss
|
||||
depends_on:
|
||||
- synapse
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- "${SS_EXT_ADR:-127.0.0.1}:${SS_EXT_PORT:-8889}:${SS_BIND_PORT:-8889}"
|
||||
environment:
|
||||
# https://github.com/matrix-org/sliding-sync?tab=readme-ov-file#setup
|
||||
- "SYNCV3_SERVER=${SYNCV3_SERVER}"
|
||||
- "SYNCV3_DB=${SYNCV3_DB}"
|
||||
- "SYNCV3_SECRET=${SYNCV3_SECRET}"
|
||||
- "SYNCV3_BINDADDR=${SS_BIND_ADDR:-0.0.0.0}:${SS_BIND_PORT:-8889}"
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
|
||||
networks:
|
||||
matrix:
|
||||
external: true
|
||||
|
|
74
synapse/nginx/site-and-matrix-example.conf
Normal file
74
synapse/nginx/site-and-matrix-example.conf
Normal file
|
@ -0,0 +1,74 @@
|
|||
# HTTP with HTTPS redirect
|
||||
server {
|
||||
listen 80;
|
||||
server_name www.domain.tld domain.tld;
|
||||
return 301 https://domain.tld$request_uri;
|
||||
}
|
||||
|
||||
# Main domain
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
|
||||
# Matrix server
|
||||
# For the federation port
|
||||
listen 8448 ssl default_server;
|
||||
listen [::]:8448 ssl default_server;
|
||||
|
||||
server_name domain.tld;
|
||||
|
||||
access_log /var/log/nginx/domain.tld.access;
|
||||
error_log /var/log/nginx/domain.tld.error;
|
||||
|
||||
# Certificate config
|
||||
include ssl/domain.tld.conf;
|
||||
|
||||
# ========= Web-site section =========
|
||||
|
||||
# Site files directory
|
||||
root /var/www/domain.tld/web;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
include config/wordpress.conf;
|
||||
#include config/static_max_cache.conf;
|
||||
#include config/gzip.conf;
|
||||
|
||||
# ========= Matrix server section =========
|
||||
|
||||
# Sliding Sync Proxy
|
||||
location ~ ^/(client/|_matrix/client/unstable/org.matrix.msc3575/sync) {
|
||||
proxy_pass http://localhost:8889;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
# Synapse
|
||||
# https://github.com/matrix-org/sliding-sync?tab=readme-ov-file#same-hostname
|
||||
location ~ ^(\/_matrix|\/_synapse\/client) {
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $host;
|
||||
|
||||
# Nginx by default only allows file uploads up to 1M in size
|
||||
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
|
||||
client_max_body_size 50M;
|
||||
|
||||
proxy_pass http://localhost:8008;
|
||||
}
|
||||
|
||||
# Matrix WKD
|
||||
# Client
|
||||
location /.well-known/matrix/client {
|
||||
add_header Content-Type application/json;
|
||||
return 200 '{"m.homeserver": {"base_url":"https://domain.tld/"}, "org.matrix.msc3575.proxy": {"url": "https://domain.tld"}}';
|
||||
}
|
||||
|
||||
# Server
|
||||
# https://matrix-org.github.io/synapse/latest/delegate.html#well-known-delegation
|
||||
# https://spec.matrix.org/latest/server-server-api/#server-discovery
|
||||
location /.well-known/matrix/server {
|
||||
add_header Content-Type application/json;
|
||||
return 200 '{"m.server": "domain.tld:8448"}';
|
||||
}
|
||||
}
|
17
telegram-llm-bot/.env.dist
Normal file
17
telegram-llm-bot/.env.dist
Normal file
|
@ -0,0 +1,17 @@
|
|||
# see https://hub.docker.com/r/skobkin/telegram-llm-bot
|
||||
|
||||
# Telegram
|
||||
TELEGRAM_TOKEN=12345
|
||||
|
||||
# API settings
|
||||
OPENAI_API_TOKEN=12345
|
||||
OPENAI_API_BASE_URL=http://host.docker.internal:11434
|
||||
|
||||
# Models selection
|
||||
# Model used for simple /hey requests
|
||||
MODEL_TEXT_REQUEST="llama3.1:8b-instruct-q6_K"
|
||||
# Model used for /summarize requests
|
||||
MODEL_SUMMARIZE_REQUEST="mistral-nemo:12b-instruct-2407-q4_K_M"
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
16
telegram-llm-bot/docker-compose.yml
Normal file
16
telegram-llm-bot/docker-compose.yml
Normal file
|
@ -0,0 +1,16 @@
|
|||
# https://hub.docker.com/r/skobkin/telegram-llm-bot
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
telegram-llm-bot:
|
||||
image: "skobkin/telegram-llm-bot:${IMAGE_VERSION:-latest}"
|
||||
container_name: telegram-llm-bot
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
12
tg-rss-bot/.env.dist
Normal file
12
tg-rss-bot/.env.dist
Normal file
|
@ -0,0 +1,12 @@
|
|||
# https://hub.docker.com/r/miroslavsckaya/tg-rss-bot
|
||||
|
||||
#IMAGE_VERSION=latest
|
||||
|
||||
RSSBOT_DSN=postgres://username:password@hostname/database_name
|
||||
RSSBOT_TG_TOKEN=1234567890:yourbotstoken
|
||||
|
||||
# https://github.com/mcuadros/ofelia#configuration
|
||||
#SCHEDULER_UPDATE=1h
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
34
tg-rss-bot/docker-compose.yml
Normal file
34
tg-rss-bot/docker-compose.yml
Normal file
|
@ -0,0 +1,34 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
app:
|
||||
# https://hub.docker.com/r/miroslavsckaya/tg-rss-bot
|
||||
image: 'miroslavsckaya/tg-rss-bot:${IMAGE_VERSION:-latest}'
|
||||
env_file: .env
|
||||
restart: unless-stopped
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
labels:
|
||||
ofelia.enabled: "true"
|
||||
ofelia.job-exec.update-feeds.schedule: "@every ${SCHEDULER_UPDATE:-1h}"
|
||||
ofelia.job-exec.update-feeds.command: "python /bot/update.py"
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
||||
|
||||
scheduler:
|
||||
# https://hub.docker.com/r/mcuadros/ofelia
|
||||
image: mcuadros/ofelia:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- app
|
||||
command: daemon --docker
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "${LOG_MAX_SIZE:-5m}"
|
||||
max-file: "${LOG_MAX_FILE:-5}"
|
|
@ -1,3 +1,5 @@
|
|||
DATA_PATH=./data
|
||||
|
||||
# Set required variables
|
||||
OR_PORT=443
|
||||
PT_PORT=444
|
||||
|
|
2
tor-obfs4-bridge/data/.gitignore
vendored
Normal file
2
tor-obfs4-bridge/data/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
|
@ -19,12 +19,8 @@ services:
|
|||
- NICKNAME=${NICKNAME:-DockerObfs4Bridge}
|
||||
env_file: .env
|
||||
volumes:
|
||||
- data:/var/lib/tor
|
||||
- "${DATA_PATH:-./data}:/var/lib/tor"
|
||||
ports:
|
||||
- ${OR_PORT}:${OR_PORT}
|
||||
- ${PT_PORT}:${PT_PORT}
|
||||
- "${OR_PORT}:${OR_PORT}/tcp"
|
||||
- "${PT_PORT}:${PT_PORT}/tcp"
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
data:
|
||||
name: tor-obfs4-bridge-datadir-${OR_PORT}-${PT_PORT}
|
3
tor-privoxy/config/.gitignore
vendored
Normal file
3
tor-privoxy/config/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
/*
|
||||
!/.gitignore
|
||||
!/torrc.dist
|
28
transmission/.env.dist
Normal file
28
transmission/.env.dist
Normal file
|
@ -0,0 +1,28 @@
|
|||
# https://hub.docker.com/r/linuxserver/transmission
|
||||
|
||||
IMAGE_TAG=latest
|
||||
|
||||
AUTH_USER=username
|
||||
AUTH_PASSWORD=*ChangeThis*
|
||||
|
||||
USER_ID=1000
|
||||
GROUP_ID=1000
|
||||
#UMASK=022
|
||||
|
||||
P2P_PORT=6882
|
||||
#WEB_ADDRESS=127.0.0.1
|
||||
WEB_PORT=9091
|
||||
|
||||
#NETWORK_MODE=host
|
||||
|
||||
DIR_CONFIG_EXT=./config
|
||||
DIR_DOWNLOAD_EXT=./downloads
|
||||
DIR_DOWNLOAD_INT=/downloads
|
||||
#DIR_TMP_DOWNLOAD_EXT=/path/to/unfinished/downloads
|
||||
#DIR_TMP_DOWNLOAD_INT=/downloads_tmp
|
||||
DIR_WATCH_EXT=./watch
|
||||
|
||||
TIMEZONE=Europe/Moscow
|
||||
|
||||
LOG_MAX_SIZE=5m
|
||||
LOG_MAX_FILE=5
|
2
transmission/config/.gitignore
vendored
Normal file
2
transmission/config/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
33
transmission/docker-compose.yml
Normal file
33
transmission/docker-compose.yml
Normal file
|
@ -0,0 +1,33 @@
|
|||
services:
|
||||
transmission:
|
||||
image: 'lscr.io/linuxserver/transmission:${IMAGE_TAG:-latest}'
|
||||
container_name: 'transmission'
|
||||
environment:
|
||||
- 'PUID=${USER_ID:-1000}'
|
||||
- 'PGID=${GROUP_ID:-1000}'
|
||||
- 'TZ=${TIMEZONE:-Europe/Moscow}'
|
||||
#- TRANSMISSION_WEB_HOME= #optional
|
||||
- 'USER=${AUTH_USER}'
|
||||
- 'PASS=${AUTH_PASSWORD}'
|
||||
#- WHITELIST= #optional
|
||||
- 'PEERPORT=${P2P_PORT:-6882}'
|
||||
#- HOST_WHITELIST= #optional
|
||||
env_file: '.env'
|
||||
volumes:
|
||||
- '${DIR_CONFIG_EXT:-./config}:/config'
|
||||
- '${DIR_DOWNLOAD_EXT:-./downloads}:${DIR_DOWNLOAD_INT:-/downloads}'
|
||||
# Separate download cache directory in case you store unfinished torrents on SSD
|
||||
# Use with `"incomplete-dir-enabled": true` in the settings.json. This is `incomplete-dir` parameter.
|
||||
- '${DIR_TMP_DOWNLOAD_EXT:-/dev/null}:${DIR_TMP_DOWNLOAD_INT:-/dev/null}'
|
||||
- '${DIR_WATCH_EXT:-./watch}:/watch'
|
||||
network_mode: '${NETWORK_MODE:-bridge}'
|
||||
ports:
|
||||
- '${WEB_ADDRESS:-0.0.0.0}:${WEB_PORT:-9091}:${WEB_PORT:-9091}'
|
||||
- '${P2P_PORT:-51413}:${P2P_PORT:-51413}'
|
||||
- '${P2P_PORT:-51413}:${P2P_PORT:-51413}/udp'
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: 'json-file'
|
||||
options:
|
||||
max-size: '${LOG_MAX_SIZE:-5m}'
|
||||
max-file: '${LOG_MAX_FILE:-5}'
|
2
transmission/downloads/.gitignore
vendored
Normal file
2
transmission/downloads/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*
|
||||
!/.gitignore
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue