My infrastructure with docker and Caddy for bensuperpc.org (WIP)
Go to file
Bensuperpc ea7eed75de
Update Readme
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2022-11-26 20:24:08 +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 Add PGAdmin 2022-11-26 16:57:07 +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 Update env files 2022-11-26 16:30:11 +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 Readme 2022-11-26 20:24:08 +01:00

Infrastructure

My infrastructure

About

This is my infrastructure. It's a collection of scripts and configuration files that I use to manage my servers. 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.

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
  • 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