diff --git a/.env.default b/.env.default index 92870a5..36a0958 100644 --- a/.env.default +++ b/.env.default @@ -1,46 +1,8 @@ -# ssl -LETSENCRYPT_EMAIL=root@localhost.localdomain -LETSENCRYPT_DNSPROVIDER_TOKEN= - -# off sites -HOST_BAIKAL= -HOST_MAIL= -HOST_NETDATA= - -# sites -DOMAIN=traefik.me -HOST_BLOG=blog -HOST_DOKUWIKI=dokuwiki -HOST_PIGALLERY=pigallery -HOST_PHOTOVIEW=photoview -HOST_PHOTONIX=photonix -HOST_LYCHEE=lychee -HOST_SEAFILE=seafile -HOST_SELFOSS=selfoss -HOST_SHAARLI=shaarli -HOST_GITEA=gitea -HOST_WALLABAG=wallabag -HOST_WWW=www -FQDN_DASHBOARD=dashboard.traefik.me -PATH_PORTAINER=/portainer -PATH_GLANCES=/glances -PATH_DELUGE=/deluge - -# other -TZ=Europe/Paris -BASIC_AUTH=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/ +# general ROOT_INSTALL=/srv +TZ=Europe/Paris PUID=1000 PGID=1000 -# torrent -DELUGE_TORRENT_PORT=6881 -DOWNLOAD_HTTP_PORT=8000 - -# seafile -SEAFILE_ADMIN_EMAIL=root@localdomain -SEAFILE_ADMIN_PASSWORD=abc123456 -SEAFILE_DB_ROOT_PASSWORD=rootpassword - -# mapbox.com -MAPBOX_TOKEN= +# apps +WALLABAG_URL=http://localhost \ No newline at end of file diff --git a/01-blog/docker-compose.blog.yml b/01-blog/docker-compose.blog.yml new file mode 100755 index 0000000..6496902 --- /dev/null +++ b/01-blog/docker-compose.blog.yml @@ -0,0 +1,17 @@ +services: + stacosys: + container_name: stacosys + image: kianby/stacosys + volumes: + - ${ROOT_INSTALL}/data/stacosys:/config + restart: unless-stopped + ports: + - "8010:8100" + blog: + container_name: blog + image: kianby/blogduyax + depends_on: + - stacosys + restart: unless-stopped + ports: + - "8011:80" diff --git a/selfoss/cacert-2021-10-26.pem b/02-selfoss/cacert-2021-10-26.pem similarity index 100% rename from selfoss/cacert-2021-10-26.pem rename to 02-selfoss/cacert-2021-10-26.pem diff --git a/02-selfoss/docker-compose.selfoss.yml b/02-selfoss/docker-compose.selfoss.yml new file mode 100755 index 0000000..3fc6b98 --- /dev/null +++ b/02-selfoss/docker-compose.selfoss.yml @@ -0,0 +1,14 @@ +services: + selfoss: + container_name: selfoss + image: hardware/selfoss + volumes: + - selfoss_data:/selfoss/data + - ${ROOT_INSTALL}/selfhosting/02-selfoss/cacert-2021-10-26.pem:/etc/ssl/cacerts + - ${ROOT_INSTALL}/selfhosting/02-selfoss/php7.ini:/etc/php7/php.ini + restart: unless-stopped + ports: + - "8012:80" + +volumes: + selfoss_data: diff --git a/selfoss/php7.ini b/02-selfoss/php7.ini similarity index 100% rename from selfoss/php7.ini rename to 02-selfoss/php7.ini diff --git a/03-shaarli/docker-compose.shaarli.yml b/03-shaarli/docker-compose.shaarli.yml new file mode 100755 index 0000000..8f7d75b --- /dev/null +++ b/03-shaarli/docker-compose.shaarli.yml @@ -0,0 +1,13 @@ +services: + shaarli: + container_name: shaarli + image: shaarli/shaarli + volumes: + - shaarli-cache:/var/www/shaarli/cache + - ${ROOT_INSTALL}/data/shaarli:/var/www/shaarli/data + restart: unless-stopped + ports: + - "8013:80" + +volumes: + shaarli-cache: diff --git a/04-gitea/docker-compose.gitea.yml b/04-gitea/docker-compose.gitea.yml new file mode 100644 index 0000000..06601db --- /dev/null +++ b/04-gitea/docker-compose.gitea.yml @@ -0,0 +1,17 @@ +services: + gitea: + container_name: gitea + image: gitea/gitea:1.17.2-rootless + restart: unless-stopped + volumes: + - gitea_data:/var/lib/gitea + - gitea_config:/etc/gitea + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "8014:3000" + +volumes: + gitea_data: + gitea_config: + diff --git a/05-wallabag/docker-compose.wallabag.yml b/05-wallabag/docker-compose.wallabag.yml new file mode 100755 index 0000000..f496311 --- /dev/null +++ b/05-wallabag/docker-compose.wallabag.yml @@ -0,0 +1,17 @@ +services: + wallabag: + container_name: wallabag + image: wallabag/wallabag + ports: + - "8015:80" + volumes: + - wallabag_data:/var/www/wallabag/data:rw + - wallabag_images:/var/www/wallabag/web/assets/images:rw + environment: + - SYMFONY__ENV__DOMAIN_NAME="${WALLABAG_URL}" + - SYMFONY__ENV__FOSUSER_REGISTRATION=false + + +volumes: + wallabag_data: + wallabag_images: diff --git a/06-heimdall/docker-compose.heimdall.yml b/06-heimdall/docker-compose.heimdall.yml new file mode 100755 index 0000000..dd12b52 --- /dev/null +++ b/06-heimdall/docker-compose.heimdall.yml @@ -0,0 +1,13 @@ +services: + heimdall: + image: lscr.io/linuxserver/heimdall + container_name: heimdall + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + volumes: + - ${ROOT_INSTALL}/data/heimdall:/config + ports: + - "8016:80" + restart: unless-stopped diff --git a/__doc__/nwdiag.diag b/__doc__/nwdiag.diag deleted file mode 100644 index 5354d3a..0000000 --- a/__doc__/nwdiag.diag +++ /dev/null @@ -1,114 +0,0 @@ -nwdiag { - inet [shape = cloud]; - inet -- router; - - network dmz { - address = "10.254.x.x/24" - router; - traefik [address = "10.254.x.254"]; - nginx-streaming [address = "10.254.x.1"]; - } - - network baikal-frontend { - address = "10.10.10.0/24" - traefik [address = "10.10.10.254"]; - baikal [address = "10.10.10.1"]; - } - - network blog-frontend { - address = "10.10.11.0/24" - traefik [address = "10.10.11.254"]; - blog [address = "10.10.11.1"]; - } - - network blog-backend { - address = "10.20.11.0/24" - blog [address = "10.20.11.1"]; - stacosys [address = "10.20.11.2"]; - } - - network deluge-frontend { - address = "10.10.12.0/24" - traefik [address = "10.10.12.254"]; - deluge [address = "10.10.12.1"]; - } - - network dokuwiki-frontend { - address = "10.10.13.0/24" - traefik [address = "10.10.13.254"]; - dokuwiki [address = "10.10.13.1"]; - } - - network glances-frontend { - address = "10.10.14.0/24" - traefik [address = "10.10.14.254"]; - glances [address = "10.10.14.1"]; - } - - network netdata-frontend { - address = "10.10.15.0/24" - traefik [address = "10.10.15.254"]; - netdata [address = "10.10.15.1"]; - } - - network netdata-backend { - address = "10.20.15.0/24" - netdata [address = "10.20.15.1"]; - docker-proxy [address = "10.20.15.2"]; - } - - network photo-frontend { - address = "10.10.16.0/24" - traefik [address = "10.10.16.254"]; - pigallery2 [address = "10.10.16.1"]; - } - - network portainer-frontend { - address = "10.10.17.0/24" - traefik [address = "10.10.17.254"]; - portainer [address = "10.10.17.1"]; - } - - network posteio-frontend { - address = "10.10.18.0/24" - traefik [address = "10.10.18.254"]; - posteio [address = "10.10.18.1"]; - } - - network seafile-frontend { - address = "10.10.19.0/24" - traefik [address = "10.10.19.254"]; - seafile [address = "10.10.19.1"]; - } - - network seafile-backend { - address = "10.20.19.0/24" - seafile [address = "10.20.19.1"]; - seafile-db [address = "10.20.19.2"]; - seafile-memcached [address = "10.20.19.3"]; - } - - network selfoss-frontend { - address = "10.10.20.0/24" - traefik [address = "10.10.20.254"]; - selfoss [address = "10.10.20.1"]; - } - - network shaarli-frontend { - address = "10.10.21.0/24" - traefik [address = "10.10.21.254"]; - shaarli [address = "10.10.21.1"]; - } - - network wallabag-frontend { - address = "10.10.22.0/24" - traefik [address = "10.10.22.254"]; - wallabag [address = "10.10.22.1"]; - } - - network www-frontend { - address = "10.10.23.0/24" - traefik [address = "10.10.23.254"]; - www [address = "10.10.23.1"]; - } -} diff --git a/__doc__/nwdiag.png b/__doc__/nwdiag.png deleted file mode 100644 index 0dad237..0000000 Binary files a/__doc__/nwdiag.png and /dev/null differ diff --git a/__doc__/poetry.lock b/__doc__/poetry.lock deleted file mode 100644 index ea4a2f6..0000000 --- a/__doc__/poetry.lock +++ /dev/null @@ -1,272 +0,0 @@ -[[package]] -name = "atomicwrites" -version = "1.4.0" -description = "Atomic file writes." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "attrs" -version = "21.2.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.extras] -dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] -docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] -tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] -tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] - -[[package]] -name = "blockdiag" -version = "3.0.0" -description = "blockdiag generates block-diagram image from text" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -funcparserlib = ">=1.0.0a0" -Pillow = ">3.0" -webcolors = "*" - -[package.extras] -pdf = ["reportlab"] -rst = ["docutils"] -testing = ["nose", "flake8", "flake8-coding", "flake8-copyright", "flake8-isort", "reportlab", "docutils"] - -[[package]] -name = "colorama" -version = "0.4.4" -description = "Cross-platform colored terminal text." -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "funcparserlib" -version = "1.0.0a0" -description = "Recursive descent parsing library based on functional combinators" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[[package]] -name = "more-itertools" -version = "8.12.0" -description = "More routines for operating on iterables, beyond itertools" -category = "dev" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "nwdiag" -version = "3.0.0" -description = "nwdiag generates network-diagram image from text" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -blockdiag = ">=3.0.0" - -[package.extras] -pdf = ["reportlab"] -rst = ["docutils"] -testing = ["nose", "pep8 (>=1.3)", "flake8", "flake8-coding", "flake8-copyright", "flake8-isort", "reportlab", "docutils"] - -[[package]] -name = "packaging" -version = "21.3" -description = "Core utilities for Python packages" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pyparsing = ">=2.0.2,<3.0.5 || >3.0.5" - -[[package]] -name = "pillow" -version = "8.4.0" -description = "Python Imaging Library (Fork)" -category = "main" -optional = false -python-versions = ">=3.6" - -[[package]] -name = "pluggy" -version = "0.13.1" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.extras] -dev = ["pre-commit", "tox"] - -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[[package]] -name = "pyparsing" -version = "3.0.6" -description = "Python parsing module" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -diagrams = ["jinja2", "railroad-diagrams"] - -[[package]] -name = "pytest" -version = "5.4.3" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.5" - -[package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=17.4.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -more-itertools = ">=4.0.0" -packaging = "*" -pluggy = ">=0.12,<1.0" -py = ">=1.5.0" -wcwidth = "*" - -[package.extras] -checkqa-mypy = ["mypy (==v0.761)"] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] - -[[package]] -name = "wcwidth" -version = "0.2.5" -description = "Measures the displayed width of unicode strings in a terminal" -category = "dev" -optional = false -python-versions = "*" - -[[package]] -name = "webcolors" -version = "1.11.1" -description = "A library for working with color names and color values formats defined by HTML and CSS." -category = "main" -optional = false -python-versions = ">=3.5," - -[metadata] -lock-version = "1.1" -python-versions = "^3.9" -content-hash = "fe015acce0fbf3644be4807b9c0484d95c2bbb57fc1b09e08e3634ee78491990" - -[metadata.files] -atomicwrites = [ - {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, - {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, -] -attrs = [ - {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, - {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, -] -blockdiag = [ - {file = "blockdiag-3.0.0-py3-none-any.whl", hash = "sha256:4031bfae6a7f36071d733dec639987346e10f7871356ee2c7a221961c64961d8"}, - {file = "blockdiag-3.0.0.tar.gz", hash = "sha256:dee4195bb87d23654546ba2bf5091480dbf253b409891fce2cd527c91d00a3e2"}, -] -colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, -] -funcparserlib = [ - {file = "funcparserlib-1.0.0a0-py2.py3-none-any.whl", hash = "sha256:a5ca025aaec28ae19956556260f5e0f28b0d851863e7982a0daf238161e33752"}, - {file = "funcparserlib-1.0.0a0.tar.gz", hash = "sha256:e6fb432a9276078eee71813a59089fd8c4f3e81f183b4ce8b8b4734d0b2faa2a"}, -] -more-itertools = [ - {file = "more-itertools-8.12.0.tar.gz", hash = "sha256:7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064"}, - {file = "more_itertools-8.12.0-py3-none-any.whl", hash = "sha256:43e6dd9942dffd72661a2c4ef383ad7da1e6a3e968a927ad7a6083ab410a688b"}, -] -nwdiag = [ - {file = "nwdiag-3.0.0-py3-none-any.whl", hash = "sha256:549cab5400ca33b8c05ea119414fa41e6bd85be222ba524418c2c176eea87e80"}, - {file = "nwdiag-3.0.0.tar.gz", hash = "sha256:e267530fcaac8a1d9e7403048597ed30e031e17f0191569dc6f704087bacb2eb"}, -] -packaging = [ - {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, - {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, -] -pillow = [ - {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, - {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, - {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, - {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, - {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, - {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, - {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, - {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, - {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, - {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, - {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, - {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, - {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, - {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, - {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, -] -pluggy = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, -] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] -pyparsing = [ - {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"}, - {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"}, -] -pytest = [ - {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, - {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, -] -wcwidth = [ - {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, - {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, -] -webcolors = [ - {file = "webcolors-1.11.1-py3-none-any.whl", hash = "sha256:b8cd5d865a25c51ff1218f0c90d0c0781fc64312a49b746b320cf50de1648f6e"}, - {file = "webcolors-1.11.1.tar.gz", hash = "sha256:76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6"}, -] diff --git a/__doc__/pyproject.toml b/__doc__/pyproject.toml deleted file mode 100644 index 8ee1988..0000000 --- a/__doc__/pyproject.toml +++ /dev/null @@ -1,16 +0,0 @@ -[tool.poetry] -name = "doc" -version = "0.1.0" -description = "" -authors = ["Yax"] - -[tool.poetry.dependencies] -python = "^3.9" -nwdiag = "^3.0.0" - -[tool.poetry.dev-dependencies] -pytest = "^5.2" - -[build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" diff --git a/baikal/docker-compose.baikal.yml b/baikal/docker-compose.baikal.yml deleted file mode 100755 index d80e228..0000000 --- a/baikal/docker-compose.baikal.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '3.8' - -services: - baikal: - container_name: baikal - image: ckulka/baikal:nginx - networks: - - baikal-frontend - expose: - - 80 - restart: unless-stopped - volumes: - - baikal_data:/var/www/baikal/Specific:rw - - baikal_config:/var/www/baikal/config:rw - labels: - - traefik.enable=true - - traefik.http.routers.baikal.rule=Host(`${HOST_BAIKAL}.${DOMAIN}`) - - traefik.http.routers.baikal.entrypoints=https - - traefik.http.routers.baikal.tls=true - - traefik.docker.network=baikal-frontend - -networks: - baikal-frontend: - name: baikal-frontend - -volumes: - baikal_config: - baikal_data: diff --git a/blog/docker-compose.blog.yml b/blog/docker-compose.blog.yml deleted file mode 100755 index c3b6704..0000000 --- a/blog/docker-compose.blog.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3.8' - -services: - stacosys: - container_name: stacosys - image: kianby/stacosys - volumes: - - ${ROOT_INSTALL}/data/stacosys:/config - networks: - - blog-backend - restart: unless-stopped - expose: - - 8100 - blog: - container_name: blog - image: kianby/blogduyax - depends_on: - - stacosys - networks: - - blog-backend - - blog-frontend - restart: unless-stopped - expose: - - 80 - labels: - - traefik.enable=true - - traefik.http.routers.blog.rule=Host(`${HOST_BLOG}.${DOMAIN}`) - - traefik.http.routers.blog.entrypoints=https - - traefik.http.routers.blog.tls=true - - traefik.docker.network=blog-frontend - -networks: - blog-frontend: - name: blog-frontend - blog-backend: - name: blog-backend \ No newline at end of file diff --git a/deluge/docker-compose.deluge.yml b/deluge/docker-compose.deluge.yml deleted file mode 100755 index 686350e..0000000 --- a/deluge/docker-compose.deluge.yml +++ /dev/null @@ -1,55 +0,0 @@ -version: '3.8' - -services: - deluge: - container_name: deluge - image: linuxserver/deluge - restart: unless-stopped - networks: - - deluge-frontend - environment: - DELUGE_LOGLEVEL: info - TZ: ${TZ} - expose: - - 8112 - ports: - - ${DELUGE_TORRENT_PORT}:${DELUGE_TORRENT_PORT}/tcp - - ${DELUGE_TORRENT_PORT}:${DELUGE_TORRENT_PORT}/udp - volumes: - - deluge_config:/config:rw - - deluge_downloads:/downloads:rw - labels: - - traefik.enable=true - - traefik.http.routers.deluge.rule=Host(`${HOST_WWW}.${DOMAIN}`) && PathPrefix(`${PATH_DELUGE}`) - - traefik.http.routers.deluge.entrypoints=https - - traefik.http.routers.deluge.tls=true - - traefik.http.services.deluge.loadbalancer.server.port=8112 - - traefik.http.routers.deluge.middlewares=delugeHeader,sameOriginHeader,delugeRedir,delugePStrip - - traefik.http.middlewares.delugeHeader.headers.customrequestheaders.X-Deluge-Base=${PATH_DELUGE}/ - - traefik.http.middlewares.sameOriginHeader.headers.customrequestheaders.X-Frame-Options=SAMEORIGIN - - traefik.http.middlewares.delugePStrip.stripprefix.prefixes=${PATH_DELUGE} - - traefik.http.middlewares.delugeRedir.redirectregex.regex=^(.*)${PATH_DELUGE}$$ - - traefik.http.middlewares.delugeRedir.redirectregex.replacement=$${1}${PATH_DELUGE}/ - - traefik.docker.network=deluge-frontend - - torrent: - container_name: torrent - image: kianby/nginx-streaming - restart: unless-stopped - networks: - - dmz - volumes: - - deluge_downloads:/downloads:ro - expose: - - 80 - # shortcut to bypass traefik limitation - ports: - - ${DOWNLOAD_HTTP_PORT}:80 - -networks: - deluge-frontend: - name: deluge-frontend - -volumes: - deluge_config: - deluge_downloads: diff --git a/dokuwiki/docker-compose.dokuwiki.yml b/dokuwiki/docker-compose.dokuwiki.yml deleted file mode 100755 index 20a4deb..0000000 --- a/dokuwiki/docker-compose.dokuwiki.yml +++ /dev/null @@ -1,26 +0,0 @@ -version: '3.8' - -services: - dokuwiki: - image: linuxserver/dokuwiki - container_name: dokuwiki - restart: unless-stopped - expose: - - 80 - environment: - - TZ=${TZ} - - APP_URL=/ #optional - volumes: - - ${ROOT_INSTALL}/data/dokuwiki:/config - networks: - - dokuwiki-frontend - labels: - - traefik.enable=true - - traefik.http.routers.dokuwiki.rule=Host(`${HOST_DOKUWIKI}.${DOMAIN}`) - - traefik.http.routers.dokuwiki.entrypoints=https - - traefik.http.routers.dokuwiki.tls=true - - traefik.docker.network=dokuwiki-frontend - -networks: - dokuwiki-frontend: - name: dokuwiki-frontend \ No newline at end of file diff --git a/glances/docker-compose.glances.yml b/glances/docker-compose.glances.yml deleted file mode 100755 index 1ba699e..0000000 --- a/glances/docker-compose.glances.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3.8' - -services: - glances: - container_name: glances - image: nicolargo/glances:3.2.3.1 - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - environment: - - GLANCES_OPT=-w - pid: host - networks: - - glances-frontend - expose: - - 61208 - labels: - - traefik.enable=true - - traefik.http.routers.glances.rule=Host(`${HOST_WWW}.${DOMAIN}`) && PathPrefix(`${PATH_GLANCES}`) - - traefik.http.routers.glances.entrypoints=https - - traefik.http.routers.glances.tls=true - - traefik.http.routers.glances.middlewares=glancesRedir,glancesPStrip - - traefik.http.middlewares.glancesPStrip.stripprefix.prefixes=${PATH_GLANCES} - - traefik.http.middlewares.glancesRedir.redirectregex.regex=^(.*)${PATH_GLANCES}$$ - - traefik.http.middlewares.glancesRedir.redirectregex.replacement=$${1}${PATH_GLANCES}/ - - traefik.docker.network=glances-frontend - -networks: - glances-frontend: - name: glances-frontend \ No newline at end of file diff --git a/netdata/docker-compose.netdata.yml b/netdata/docker-compose.netdata.yml deleted file mode 100755 index 8e7efc6..0000000 --- a/netdata/docker-compose.netdata.yml +++ /dev/null @@ -1,57 +0,0 @@ -version: '3.8' -services: - netdata: - image: netdata/netdata - container_name: netdata - hostname: ${HOST_NETDATA}.${DOMAIN} - expose: - - 19999 - restart: unless-stopped - cap_add: - - SYS_PTRACE - security_opt: - - apparmor:unconfined - environment: - - DOCKER_HOST=docker-proxy:2375 - volumes: - - netdataconfig:/etc/netdata - - netdatalib:/var/lib/netdata - - netdatacache:/var/cache/netdata - - /etc/passwd:/host/etc/passwd:ro - - /etc/group:/host/etc/group:ro - - /proc:/host/proc:ro - - /sys:/host/sys:ro - - /etc/os-release:/host/etc/os-release:ro - networks: - - netdata-frontend - - netdata-backend - labels: - - traefik.enable=true - - traefik.http.routers.netdata.rule=Host(`${HOST_NETDATA}.${DOMAIN}`) - - traefik.http.routers.netdata.entrypoints=https - - traefik.http.routers.netdata.tls=true - - traefik.http.routers.netdata.middlewares=auth - - traefik.http.middlewares.auth.basicauth.users=${BASIC_AUTH} - - traefik.docker.network=netdata-frontend - healthcheck: - disable: true - docker-proxy: - image: tecnativa/docker-socket-proxy - container_name: docker-proxy - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - environment: - - CONTAINERS=1 - networks: - - netdata-backend - -networks: - netdata-frontend: - name: netdata-frontend - netdata-backend: - name: netdata-backend - -volumes: - netdataconfig: - netdatalib: - netdatacache: \ No newline at end of file diff --git a/photo/docker-compose.lychee.yml b/photo/docker-compose.lychee.yml deleted file mode 100755 index b7939d2..0000000 --- a/photo/docker-compose.lychee.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: '3.8' - -services: - lychee: - container_name: lychee - environment: - - PHP_TZ=${TZ} - - TIMEZONE=${TZ} - image: lycheeorg/lychee - networks: - - photo-frontend - expose: - - 80 - restart: unless-stopped - volumes: - - lychee_conf:/conf - - lychee_uploads:/uploads - - lychee_sym:/sym - labels: - - traefik.enable=true - - traefik.http.routers.photo.rule=Host(`${HOST_LYCHEE}.${DOMAIN}`) - - traefik.http.routers.photo.entrypoints=https - - traefik.http.routers.photo.tls=true - - traefik.docker.network=photo-frontend - -networks: - photo-frontend: - name: photo-frontend - photo-backend: - name: photo-backend - -volumes: - lychee_conf: - lychee_uploads: - lychee_sym: diff --git a/photo/docker-compose.photonix.yml b/photo/docker-compose.photonix.yml deleted file mode 100755 index 31e01ea..0000000 --- a/photo/docker-compose.photonix.yml +++ /dev/null @@ -1,71 +0,0 @@ -version: '3.8' - -services: - postgres: - container_name: photonix-postgres - image: postgres:11.1-alpine - environment: - POSTGRES_DB: photonix - POSTGRES_PASSWORD: password - volumes: - - photonix_db:/var/lib/postgresql/data - networks: - - photo-backend - - redis: - container_name: photonix-redis - image: redis:6.2.2 - networks: - - photo-backend - - photonix: - container_name: photonix - image: photonixapp/photonix:latest - expose: - - 80 - environment: - ENV: prd - POSTGRES_HOST: postgres - POSTGRES_DB: photonix - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - REDIS_HOST: redis - ALLOWED_HOSTS: '*' - # More configuration options here: https://photonix.org/docs/configuration/ - volumes: -# - ./data/photos:/data/photos - - photonix_raw_photos:/data/raw-photos-processed - - photonix_cache:/data/cache - - photonix_models:/data/models - - type: bind - source: ${ROOT_INSTALL}/data/seafile-fuse - target: /seahub - bind: - propagation: rslave - privileged: true - cap_add: - - SYS_ADMIN - depends_on: - - postgres - - redis - networks: - - photo-backend - - photo-frontend - labels: - - traefik.enable=true - - traefik.http.routers.photo.rule=Host(`${HOST_PHOTONIX}.${DOMAIN}`) - - traefik.http.routers.photo.entrypoints=https - - traefik.http.routers.photo.tls=true - - traefik.docker.network=photo-frontend - -networks: - photo-frontend: - name: photo-frontend - photo-backend: - name: photo-backend - -volumes: - photonix_raw_photos: - photonix_cache: - photonix_models: - photonix_db: \ No newline at end of file diff --git a/photo/docker-compose.photoview.yml b/photo/docker-compose.photoview.yml deleted file mode 100755 index 23011d6..0000000 --- a/photo/docker-compose.photoview.yml +++ /dev/null @@ -1,77 +0,0 @@ -version: '3.8' - -services: - photoview-db: - container_name: photoview-db - image: mariadb:10.5 - restart: unless-stopped - environment: - - MYSQL_DATABASE=photoview - - MYSQL_USER=photoview - - MYSQL_PASSWORD=photosecret - - MYSQL_RANDOM_ROOT_PASSWORD=1 - volumes: - - photoview_db_data:/var/lib/mysql - networks: - - photo-backend - - photoview: - container_name: photoview - image: viktorstrate/photoview:2 - restart: unless-stopped - expose: - - 80 - depends_on: - - photoview-db - networks: - - photo-backend - - photo-frontend - environment: - - PHOTOVIEW_DATABASE_DRIVER=mysql - - PHOTOVIEW_MYSQL_URL=photoview:photosecret@tcp(photoview-db)/photoview - - PHOTOVIEW_LISTEN_IP=photoview - - PHOTOVIEW_LISTEN_PORT=80 - - PHOTOVIEW_MEDIA_CACHE=/app/cache - - # Optional: If you are using Samba/CIFS-Share and experience problems with "directory not found" - # Enable the following Godebug - # - GODEBUG=asyncpreemptoff=1 - - - # Optional: To enable map related features, you need to create a mapbox token. - # A token can be generated for free here https://account.mapbox.com/access-tokens/ - # It's a good idea to limit the scope of the token to your own domain, to prevent others from using it. - - MAPBOX_TOKEN=${MAPBOX_TOKEN} - - volumes: - - photoview_api_cache:/app/cache - - # Change This: to the directory where your photos are located on your server. - # If the photos are located at `/home/user/photos`, then change this value - # to the following: `/home/user/photos:/photos:ro`. - # You can mount multiple paths, if your photos are spread across multiple directories. - #- ./photos_path:/photos:ro - - type: bind - source: ${ROOT_INSTALL}/data/seafile-fuse - target: /photos - bind: - propagation: rslave - privileged: true - cap_add: - - SYS_ADMIN - labels: - - traefik.enable=true - - traefik.http.routers.photo.rule=Host(`${HOST_PHOTOVIEW}.${DOMAIN}`) - - traefik.http.routers.photo.entrypoints=https - - traefik.http.routers.photo.tls=true - - traefik.docker.network=photo-frontend - -networks: - photo-frontend: - name: photo-frontend - photo-backend: - name: photo-backend - -volumes: - photoview_db_data: - photoview_api_cache: \ No newline at end of file diff --git a/photo/docker-compose.pigallery.yml b/photo/docker-compose.pigallery.yml deleted file mode 100755 index d459d66..0000000 --- a/photo/docker-compose.pigallery.yml +++ /dev/null @@ -1,45 +0,0 @@ -version: '3.8' - -services: - pigallery2: - container_name: pigallery2 - environment: - NODE_ENV: production - image: bpatrik/pigallery2:1.9.0-alpine - networks: - - photo-frontend - expose: - - 80 - restart: unless-stopped - volumes: - #/app/data/images - - pigallery_config:/app/data/config:rw - - pigallerydb_data:/app/data/db:rw - - pigallery_tmp:/app/data/tmp:rw - - type: bind - source: ${ROOT_INSTALL}/data/seafile-fuse - target: /seahub - bind: - propagation: rslave - privileged: true - cap_add: - - SYS_ADMIN - healthcheck: - disable: true - labels: - - traefik.enable=true - - traefik.http.routers.photo.rule=Host(`${HOST_PIGALLERY}.${DOMAIN}`) - - traefik.http.routers.photo.entrypoints=https - - traefik.http.routers.photo.tls=true - - traefik.docker.network=photo-frontend - -networks: - photo-frontend: - name: photo-frontend - photo-backend: - name: photo-backend - -volumes: - pigallerydb_data: - pigallery_tmp: - pigallery_config: diff --git a/portainer/docker-compose.portainer.yml b/portainer/docker-compose.portainer.yml deleted file mode 100755 index a8f34b1..0000000 --- a/portainer/docker-compose.portainer.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: '3.8' - -services: - portainer: - container_name: portainer - image: portainer/portainer-ce - command: -H unix:///var/run/docker.sock - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - portainer_data:/data - networks: - - portainer-frontend - restart: unless-stopped - expose: - - 9000 - labels: - - traefik.enable=true - - traefik.http.routers.portainer.rule=Host(`${HOST_WWW}.${DOMAIN}`) && PathPrefix(`${PATH_PORTAINER}`) - - traefik.http.routers.portainer.entrypoints=https - - traefik.http.routers.portainer.tls=true - - traefik.http.services.portainer.loadbalancer.server.port=9000 - - traefik.http.routers.portainer.middlewares=portainerRedir,portainerPStrip - - traefik.http.middlewares.portainerPStrip.stripprefix.prefixes=${PATH_PORTAINER} - - traefik.http.middlewares.portainerRedir.redirectregex.regex=^(.*)${PATH_PORTAINER}$$ - - traefik.http.middlewares.portainerRedir.redirectregex.replacement=$${1}${PATH_PORTAINER}/ - - traefik.docker.network=portainer-frontend - -networks: - portainer-frontend: - name: portainer-frontend - -volumes: - portainer_data: diff --git a/posteio/docker-compose.posteio.yml b/posteio/docker-compose.posteio.yml deleted file mode 100755 index e95aca6..0000000 --- a/posteio/docker-compose.posteio.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: '3.8' - -services: - poste-io: - container_name: poste-io - image: analogic/poste.io - volumes: - - ${ROOT_INSTALL}/data/poste.io:/data - environment: - - TZ=${TZ} - - HTTPS=OFF - restart: unless-stopped - ports: - - "465:465" - - "993:993" - - "25:25" - expose: - - 80 - labels: - - traefik.enable=true - - traefik.http.routers.posteio.rule=Host(`${HOST_MAIL}.${DOMAIN}`) - - traefik.http.routers.posteio.entrypoints=https - - traefik.http.routers.posteio.tls=true - - traefik.docker.network=posteio-frontend - networks: - - posteio-frontend - healthcheck: - disable: true - -networks: - posteio-frontend: - name: portainer-frontend \ No newline at end of file diff --git a/run-docker-compose.sh b/run-docker-compose.sh new file mode 100755 index 0000000..0b9ffcf --- /dev/null +++ b/run-docker-compose.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# examples: +# ./run-docker-compose.sh --env-file ./.env up -d +# ./run-docker-compose.sh --env-file ./.env down + +# Exit on errors +set -e + +# Ensure arguments are provided +if [ $# -eq 0 ]; then + echo "Usage: $0 " + exit 1 +fi + +# Store the user-provided arguments +ARGS="$@" + +# Find all directories containing a file named docker-compose*.yml +find . -type f -name 'docker-compose*.yml' | while IFS= read -r compose_file; do + + # Run the docker compose command with user arguments + echo "Running: docker compose $compose_file" + docker compose -f "$compose_file" $ARGS + +done + diff --git a/seafile/docker-compose.seafile.yml b/seafile/docker-compose.seafile.yml deleted file mode 100755 index 96c7b60..0000000 --- a/seafile/docker-compose.seafile.yml +++ /dev/null @@ -1,68 +0,0 @@ -version: '3.8' - -services: - seafile-db: - container_name: seafile-db - environment: - MYSQL_LOG_CONSOLE: "true" - MYSQL_ROOT_PASSWORD: ${SEAFILE_DB_ROOT_PASSWORD} - image: mariadb:10.1 - networks: - - seafile-backend - volumes: - - seafile_db:/var/lib/mysql:rw - restart: unless-stopped - seafile-memcached: - container_name: seafile-memcached - entrypoint: memcached -m 256 - image: memcached:1.5.6 - networks: - - seafile-backend - restart: unless-stopped - seafile: - container_name: seafile - depends_on: - - seafile-db - - seafile-memcached - environment: - DB_HOST: seafile-db - DB_ROOT_PASSWD: ${SEAFILE_DB_ROOT_PASSWORD} - SEAFILE_ADMIN_EMAIL: ${SEAFILE_ADMIN_EMAIL} - SEAFILE_ADMIN_PASSWORD: ${SEAFILE_ADMIN_PASSWORD} - SEAFILE_SERVER_HOSTNAME: ${HOST_SEAFILE}.${DOMAIN} - SEAFILE_SERVER_LETSENCRYPT: "false" - TIME_ZONE: ${TZ} - image: seafileltd/seafile-mc:latest - networks: - - seafile-backend - - seafile-frontend - restart: unless-stopped - expose: - - 80 - volumes: - - ${ROOT_INSTALL}/selfhosting/seafile/start.py:/scripts/start.py - - seafile_data:/shared:rw - - type: bind - source: ${ROOT_INSTALL}/data/seafile-fuse - target: /seafile-fuse - bind: - propagation: rshared - privileged: true - cap_add: - - SYS_ADMIN - labels: - - traefik.enable=true - - traefik.http.routers.seafile.rule=Host(`${HOST_SEAFILE}.${DOMAIN}`) - - traefik.http.routers.seafile.entrypoints=https - - traefik.http.routers.seafile.tls=true - - traefik.docker.network=seafile-frontend - -networks: - seafile-frontend: - name: seafile-frontend - seafile-backend: - name: seafile-backend - -volumes: - seafile_db: - seafile_data: diff --git a/seafile/start.py b/seafile/start.py deleted file mode 100755 index d3ce47c..0000000 --- a/seafile/start.py +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env python3 -#coding: UTF-8 - -""" -Starts the seafile/seahub server and watches the controller process. It is -the entrypoint command of the docker container. -""" - -import json -import os -from os.path import abspath, basename, exists, dirname, join, isdir -import shutil -import sys -import time - -from utils import ( - call, get_conf, get_install_dir, get_script, get_command_output, - render_template, wait_for_mysql, setup_logging -) -from upgrade import check_upgrade -from bootstrap import init_seafile_server, is_https, init_letsencrypt, generate_local_nginx_conf - - -shared_seafiledir = '/shared/seafile' -ssl_dir = '/shared/ssl' -generated_dir = '/bootstrap/generated' -installdir = get_install_dir() -topdir = dirname(installdir) - -def watch_controller(): - maxretry = 4 - retry = 0 - while retry < maxretry: - controller_pid = get_command_output('ps aux | grep seafile-controller | grep -v grep || true').strip() - garbage_collector_pid = get_command_output('ps aux | grep /scripts/gc.sh | grep -v grep || true').strip() - if not controller_pid and not garbage_collector_pid: - retry += 1 - else: - retry = 0 - time.sleep(5) - print('seafile controller exited unexpectedly.') - sys.exit(1) - -def main(): - if not exists(shared_seafiledir): - os.mkdir(shared_seafiledir) - if not exists(generated_dir): - os.makedirs(generated_dir) - - if is_https(): - init_letsencrypt() - generate_local_nginx_conf() - call('nginx -s reload') - - wait_for_mysql() - init_seafile_server() - - check_upgrade() - os.chdir(installdir) - - admin_pw = { - 'email': get_conf('SEAFILE_ADMIN_EMAIL', 'me@example.com'), - 'password': get_conf('SEAFILE_ADMIN_PASSWORD', 'asecret'), - } - password_file = join(topdir, 'conf', 'admin.txt') - with open(password_file, 'w') as fp: - json.dump(admin_pw, fp) - - - try: - call('{} start'.format(get_script('seafile.sh'))) - call('{} start'.format(get_script('seahub.sh'))) - call('{} start /seafile-fuse'.format(get_script('seaf-fuse.sh'))) - finally: - if exists(password_file): - os.unlink(password_file) - - print('seafile server is running now.') - try: - watch_controller() - except KeyboardInterrupt: - print('Stopping seafile server.') - sys.exit(0) - -if __name__ == '__main__': - setup_logging() - main() - diff --git a/selfoss/docker-compose.selfoss.yml b/selfoss/docker-compose.selfoss.yml deleted file mode 100755 index 2d6210e..0000000 --- a/selfoss/docker-compose.selfoss.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: '3.8' - -services: - selfoss: - container_name: selfoss - image: hardware/selfoss - volumes: - - selfoss_data:/selfoss/data - - ${ROOT_INSTALL}/selfhosting/selfoss/cacert-2021-10-26.pem:/etc/ssl/cacerts - - ${ROOT_INSTALL}/selfhosting/selfoss/php7.ini:/etc/php7/php.ini - networks: - - selfoss-frontend - restart: unless-stopped - expose: - - 8888 - labels: - - traefik.enable=true - - traefik.http.routers.selfoss.rule=Host(`${HOST_SELFOSS}.${DOMAIN}`) - - traefik.http.routers.selfoss.entrypoints=https - - traefik.http.routers.selfoss.tls=true - - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=134217728 - - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=2000000 - - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=134217728 - - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=2000000 - - traefik.docker.network=selfoss-frontend -volumes: - selfoss_data: - -networks: - selfoss-frontend: - name: selfoss-frontend \ No newline at end of file diff --git a/shaarli/docker-compose.shaarli.yml b/shaarli/docker-compose.shaarli.yml deleted file mode 100755 index a272acd..0000000 --- a/shaarli/docker-compose.shaarli.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3.8' - -services: - shaarli: - container_name: shaarli - image: shaarli/shaarli - volumes: - - shaarli-cache:/var/www/shaarli/cache - - ${ROOT_INSTALL}/data/shaarli:/var/www/shaarli/data - networks: - - shaarli-frontend - restart: unless-stopped - expose: - - 80 - labels: - - traefik.enable=true - - traefik.http.routers.shaarli.rule=Host(`${HOST_SHAARLI}.${DOMAIN}`) - - traefik.http.routers.shaarli.entrypoints=https - - traefik.http.routers.shaarli.tls=true - - traefik.docker.network=shaarli-frontend - -networks: - shaarli-frontend: - name: shaarli-frontend - -volumes: - shaarli-cache: diff --git a/source/docker-compose.gitea.yml b/source/docker-compose.gitea.yml deleted file mode 100644 index 40d86b4..0000000 --- a/source/docker-compose.gitea.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: "3.8" - -services: - gitea: - container_name: gitea - image: gitea/gitea:1.17.2-rootless - restart: unless-stopped - volumes: - - gitea_data:/var/lib/gitea - - gitea_config:/etc/gitea - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "3000:3000" - networks: - - source-frontend - labels: - - traefik.enable=true - - traefik.http.routers.gitea.rule=Host(`${HOST_GITEA}.${DOMAIN}`) - - traefik.http.services.gitea.loadbalancer.server.port=3000 - - traefik.http.routers.gitea.entrypoints=https - - traefik.http.routers.gitea.tls=true - - traefik.docker.network=source-frontend - -networks: - source-frontend: - name: source-frontend - -volumes: - gitea_data: - gitea_config: - diff --git a/traefik/acme.json b/traefik/acme.json deleted file mode 100644 index e69de29..0000000 diff --git a/traefik/docker-compose.traefik-infomaniak.yml b/traefik/docker-compose.traefik-infomaniak.yml deleted file mode 100755 index 896f4d5..0000000 --- a/traefik/docker-compose.traefik-infomaniak.yml +++ /dev/null @@ -1,67 +0,0 @@ -version: '3.8' - -services: - traefik-infomaniak: - container_name: traefik-infomaniak - image: traefik:v2.5.3 - profiles: ["production"] - command: - - --providers.docker=true - - --providers.docker.exposedbydefault=false - - --api.dashboard=false - - --entrypoints.http.address=:80 - - --entrypoints.https.address=:443 - - --certificatesresolvers.letsencrypt.acme.email=${LETSENCRYPT_EMAIL} - - --certificatesresolvers.letsencrypt.acme.storage=/acme.json - - --certificatesResolvers.letsencrypt.acme.dnsChallenge=true - # example : infomaniak - - --certificatesresolvers.letsencrypt.acme.dnschallenge.provider=infomaniak - environment: - - INFOMANIAK_ACCESS_TOKEN=${LETSENCRYPT_DNSPROVIDER_TOKEN} - labels: - - traefik.enable=true - - traefik.http.routers.api.entrypoints=http - - traefik.http.routers.api.entrypoints=https - - traefik.http.routers.api.service=api@internal - # middleware auth - - traefik.http.routers.api.middlewares=auth - - traefik.http.middlewares.auth.basicauth.users=${BASIC_AUTH} - # request widlcard certificate - - traefik.http.routers.api.tls.certresolver=letsencrypt - - traefik.http.routers.api.tls.domains[0].main=${DOMAIN} - - traefik.http.routers.api.tls.domains[0].sans=*.${DOMAIN} - # global redirect to https - - traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`) - - traefik.http.routers.http-catchall.entrypoints=http - - traefik.http.routers.http-catchall.middlewares=redirect-to-https - # middleware redirect - - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https - - traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true - ports: - - 80:80 - - 443:443 - networks: - - dmz - - baikal-frontend - - blog-frontend - - deluge-frontend - - dokuwiki-frontend - - glances-frontend - - netdata-frontend - - photo-frontend - - portainer-frontend - - posteio-frontend - - seafile-frontend - - selfoss-frontend - - shaarli-frontend - - source-frontend - - wallabag-frontend - - wwww-frontend - restart: unless-stopped - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - ${ROOT_INSTALL}/selfhosting/traefik/acme.json:/acme.json - -networks: - dmz: - name: dmz \ No newline at end of file diff --git a/traefik/docker-compose.traefik-local.yml b/traefik/docker-compose.traefik-local.yml deleted file mode 100755 index 1b38801..0000000 --- a/traefik/docker-compose.traefik-local.yml +++ /dev/null @@ -1,55 +0,0 @@ -version: '3.8' - -services: - traefik-local: - container_name: traefik-local - image: traefik:v2.5.3 - profiles: ["testing"] - ports: - - 80:80 - - 443:443 - - 8080:8080 - expose: - - 8080 - labels: - - traefik.enable=true - networks: - - dmz - - baikal-frontend - - blog-frontend - - deluge-frontend - - dokuwiki-frontend - - glances-frontend - - netdata-frontend - - photo-frontend - - portainer-frontend - - posteio-frontend - - seafile-frontend - - selfoss-frontend - - shaarli-frontend - - source-frontend - - wallabag-frontend - - wwww-frontend - restart: unless-stopped - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - ${ROOT_INSTALL}/selfhosting/traefik/traefik.yml:/etc/traefik/traefik.yml - - ${ROOT_INSTALL}/selfhosting/traefik/tls.yml:/etc/traefik/tls.yml - - certs:/etc/ssl/traefik - - traefik-reverse-proxy-https-helper: - container_name: traefik-reverse-proxy-https-helper - image: alpine - profiles: ["testing"] - command: sh -c "cd /etc/ssl/traefik - && wget traefik.me/cert.pem -O cert.pem - && wget traefik.me/privkey.pem -O privkey.pem" - volumes: - - certs:/etc/ssl/traefik - -networks: - dmz: - name: dmz - -volumes: - certs: \ No newline at end of file diff --git a/traefik/tls.yml b/traefik/tls.yml deleted file mode 100644 index 6afb264..0000000 --- a/traefik/tls.yml +++ /dev/null @@ -1,9 +0,0 @@ -tls: - stores: - default: - defaultCertificate: - certFile: /etc/ssl/traefik/cert.pem - keyFile: /etc/ssl/traefik/privkey.pem - certificates: - - certFile: /etc/ssl/traefik/cert.pem - keyFile: /etc/ssl/traefik/privkey.pem \ No newline at end of file diff --git a/traefik/traefik.yml b/traefik/traefik.yml deleted file mode 100644 index f53aec9..0000000 --- a/traefik/traefik.yml +++ /dev/null @@ -1,37 +0,0 @@ -logLevel: INFO - -api: - insecure: true - dashboard: true - -entryPoints: - http: - address: ":80" - https: - address: ":443" - -providers: - file: - filename: /etc/traefik/tls.yml - docker: - endpoint: unix:///var/run/docker.sock - watch: true - exposedByDefault: false - defaultRule: "HostRegexp(`{{ index .Labels \"com.docker.compose.service\"}}.traefik.me`,`{{ index .Labels \"com.docker.compose.service\"}}-{dashed-ip:.*}.traefik.me`)" - -http: - # global redirect to https - routers: - http-catchall: - rule: "hostregexp(`{host:.+}`)" - entrypoints: - - http - middlewares: - - redirect-to-https - - # middleware redirect - middlewares: - redirect-to-https: - redirectscheme: - scheme: https - permanent: true \ No newline at end of file diff --git a/wallabag/docker-compose.wallabag.yml b/wallabag/docker-compose.wallabag.yml deleted file mode 100755 index 6eabf90..0000000 --- a/wallabag/docker-compose.wallabag.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: '3.8' - -services: - wallabag: - container_name: wallabag - image: wallabag/wallabag - networks: - - wallabag-frontend - expose: - - 80 - volumes: - - wallabag_data:/var/www/wallabag/data:rw - - wallabag_images:/var/www/wallabag/web/assets/images:rw - environment: - - SYMFONY__ENV__DOMAIN_NAME="https://${HOST_WALLABAG}.${DOMAIN}" - - SYMFONY__ENV__FOSUSER_REGISTRATION=false - labels: - - traefik.enable=true - - traefik.http.routers.wallabag.rule=Host(`${HOST_WALLABAG}.${DOMAIN}`) - - traefik.http.routers.wallabag.entrypoints=https - - traefik.http.routers.wallabag.tls=true - - traefik.docker.network=wallabag-frontend - -networks: - wallabag-frontend: - name: wallabag-frontend - -volumes: - wallabag_data: - wallabag_images: diff --git a/www/docker-compose.dashy.yml b/www/docker-compose.dashy.yml deleted file mode 100755 index 2bcefc7..0000000 --- a/www/docker-compose.dashy.yml +++ /dev/null @@ -1,40 +0,0 @@ -version: '3.8' - -services: - dashy: - # To build from source, replace 'image: lissy93/dashy' with 'build: .' - # build: . - image: lissy93/dashy - container_name: dashy - # Pass in your config file below, by specifying the path on your host machine - volumes: - - ${ROOT_INSTALL}/data/dashy/config.yml:/app/public/conf.yml - # Set any environmental variables - environment: - - NODE_ENV=production - # Specify your user ID and group ID. You can find this by running `id -u` and `id -g` - # - UID=1000 - # - GID=1000 - # Specify restart policy - restart: unless-stopped - # Configure healthchecks - #healthcheck: - # test: ['CMD', 'node', '/app/services/healthcheck'] - # interval: 1m30s - # timeout: 10s - # retries: 3 - # start_period: 40s - networks: - - wwww-frontend - expose: - - 80 - labels: - - traefik.enable=true - - traefik.http.routers.dashy.rule=Host(`${FQDN_DASHBOARD}`) - - traefik.http.routers.dashy.entrypoints=https - - traefik.http.routers.dashy.tls=true - - traefik.docker.network=wwww-frontend - -networks: - wwww-frontend: - name: wwww-frontend diff --git a/www/docker-compose.heimdall.yml b/www/docker-compose.heimdall.yml deleted file mode 100755 index f888cba..0000000 --- a/www/docker-compose.heimdall.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3.8' - -services: - heimdall: - image: lscr.io/linuxserver/heimdall - container_name: heimdall - environment: - - PUID=${PUID} - - PGID=${PGID} - - TZ=${TZ} - volumes: - - ${ROOT_INSTALL}/data/heimdall:/config - expose: - - 80 - networks: - - wwww-frontend - restart: unless-stopped - labels: - - traefik.enable=true - - traefik.http.routers.dashy.rule=Host(`${FQDN_DASHBOARD}`) - - traefik.http.routers.dashy.entrypoints=https - - traefik.http.routers.dashy.tls=true - - traefik.docker.network=wwww-frontend - -networks: - wwww-frontend: - name: wwww-frontend \ No newline at end of file diff --git a/www/docker-compose.www.yml b/www/docker-compose.www.yml deleted file mode 100755 index 9d0a565..0000000 --- a/www/docker-compose.www.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '3.8' - -services: - www: - container_name: www - image: kianby/www-madyanne - restart: unless-stopped - networks: - - wwww-frontend - expose: - - 80 - labels: - - traefik.enable=true - - traefik.http.routers.www.rule=Host(`${HOST_WWW}.${DOMAIN}`) - - traefik.http.routers.www.entrypoints=https - - traefik.http.routers.www.tls=true - - traefik.docker.network=wwww-frontend - -networks: - wwww-frontend: - name: wwww-frontend \ No newline at end of file