My infrastructure with docker and Caddy for bensuperpc.org (WIP)
Go to file
Bensuperpc 93b567dace
Move config to volume
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2022-11-27 11:45:56 +01:00
bensuperpc_website@859f5d3874 Update website 2022-11-26 14:52:50 +01:00
env Update env files 2022-11-26 16:30:11 +01:00
nginx-conf Update wordpress config and readme 2022-11-27 11:39:16 +01:00
nginx-conf-cert Update Readme 2022-11-26 17:54:44 +01:00
.gitignore Add files 2022-11-24 13:32:59 +01:00
.gitmodules Merge N1 2022-11-26 14:47:56 +01:00
docker-compose.yml Move config to volume 2022-11-27 11:45:56 +01:00
LICENSE Initial commit 2022-11-24 13:29:36 +01:00
Makefile Add PGAdmin 2022-11-26 16:57:07 +01:00
README.md Update wordpress config and readme 2022-11-27 11:39:16 +01:00

Infrastructure

My personal infrastructure for my servers and services.

About

This is my infrastructure. It's a collection of scripts and configuration files that I use to manage my servers and services. It uses Nginx and docker-compose to run my services (And many other things). It's a work in progress, and I'm still learning a lot about it. If you have any questions or suggestions, feel free to open an issue or a pull request.

Features

  • Nginx reverse proxy
  • Docker / docker-compose
  • Letsencrypt / Certbot
  • Flask (Via UWSGI/NGINX)
  • Wordpress (Via FASTCGI/NGINX)
  • PHPMyAdmin (MariaDB)
  • PGAdmin (PostgreSQL)
  • Qbittorrent
  • Use Flask instead of wordpress as default blog
  • Jellyfin
  • Gitea
  • Mastodon
  • Minecraft server (Hyperworld v2)
  • SSL for all subdomains / Services (Not just the main domain)

Screenshots

Installation and configuration

Requirements

Clone

Clone this repository to your local machine using:

git clone --recurse-submodules --remote-submodules https://github.com/bensuperpc/infrastructure.git

Go to the folder

cd infrastructure

Get the SSL certificate

Keep original config file

cp nginx-conf nginx-conf-original

Remove the old config file

rm -fr nginx-conf

Copy nginx-conf-cert to nginx-conf, for temporary use to get the SSL certificate

cp -r nginx-conf-cert nginx-conf

Replace certbot commands in docker-compose.yml, and replace bensuperpc.org by your domain

command: certonly --webroot --webroot-path=/var/www/html --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --domain www.bensuperpc.org --domain bensuperpc.org

With to get the SSL certificate

command: certonly --webroot --webroot-path=/var/www/html --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --staging --domain www.bensuperpc.org --domain bensuperpc.org

Run the docker-compose and exit with CTRL+C and when you have the SSL certificate

make start-at

Replace certbot commands in docker-compose.yml to update and renew the SSL certificate

command: certonly --webroot --webroot-path=/var/www/html --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --force-renewal --domain www.bensuperpc.org --domain bensuperpc.org

Run the docker-compose to update and renew the SSL certificate and exit with CTRL+C when you have the SSL certificate

make start-at

Now you can replace the certbot commands in docker-compose.yml with the original one

command: certonly --webroot --webroot-path=/var/www/html --email bensuperpc@bensuperpc.fr --agree-tos --rsa-key-size 4096 --no-eff-email --verbose --noninteractive --keep-until-expiring --domain www.bensuperpc.org --domain bensuperpc.org

Flask website

You can follow the README.md to install the Flask website.

Wordpress website

For the Wordpress website, you can configure in GUI when you go to the website.

Start the infrastructure

Start the website with:

make start-at

Stop the website with (or CTRL+C with the previous command):

make stop

URL

You can access to the website with:

Build with

License

License