My infrastructure with docker and Caddy for bensuperpc.org (WIP)
Go to file
Bensuperpc 134060c73d
Update config location
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2023-12-13 23:29:39 +01:00
.github Update config and add CI 2023-12-10 10:34:39 +01:00
caddy Fix config 2023-12-10 09:12:10 +01:00
config/wordpress Update config location 2023-12-13 23:29:39 +01:00
env Update image 2023-11-26 22:46:58 +01:00
.gitignore Update example config 2023-11-25 17:39:20 +01:00
.gitmodules Remove old website 2023-03-19 19:15:53 +01:00
docker-compose.yml Update config location 2023-12-13 23:29:39 +01:00
LICENSE Initial commit 2022-11-24 13:29:36 +01:00
Makefile Update infrastructure 2023-12-09 14:50:52 +01:00
README.md Update config 2023-12-10 09:04:50 +01:00

Infrastructure

My personal infrastructure for my servers and services.

**I moved to caddy inetead of nginx, you can find the old version before this commit:b98fca7af8

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 ~~ caddy 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

  • caddy 2 reverse proxy
  • Docker / docker-compose
  • Caddy
  • Wordpress (Via FASTCGI/caddy)
  • Adminer (MariaDB)
  • Portainer ce

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

Configure the domain

For all bensuperpc.org, you need to replace it with your domain, example: mydomain.com

find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/bensuperpc.org/mydomain.com/g'

Check if all bensuperpc.* are replaced by your domain in Caddyfile

And then, caddy will generate the certificate for you and renew it automatically :D (It's easier than certbot and nginx)

Domain name Description
bensuperpc.org Main domain
bensuperpc.com Redirect to bensuperpc.org
bensuperpc.fr Redirect to bensuperpc.org
bensuperpc.net Redirect to bensuperpc.org
bensuperpc.ovh Redirect to bensuperpc.org

Configure the infrastructure

You need to configure the infrastructure with your own configuration.

You can generate a password with 32 characters:

openssl rand -base64 32

For the wordpress.env file, you need to change the password and user for the database.

WORDPRESS_DB_USER=bensuperpc
WORDPRESS_DB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw
WORDPRESS_DB_NAME=wordpress
WORDPRESS_DB_HOST=database:3306

For mariadb.env file, you need to change the password(s) and user for the database.

MARIADB_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ
MARIADB_USER=bensuperpc
MARIADB_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw
MARIADB_DATABASE=wordpress

For adminer.env file, you need to change the password(s) and user for the database.

MYSQL_ROOT_PASSWORD=7L1Ncbquax0B2TCOmrjaQl9n5mnY88bQ
MYSQL_USER=bensuperpc
MYSQL_PASSWORD=lEOEf8cndnDjp84O4Uv5D9zJLJDFatLw
ADMINER_DEFAULT_SERVER=database

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

Remove countainers with:

make down

All services

You can find all services on the docker-compose.yml file or on this table:

Service Description URL
Wordpress Wordpress website bensuperpc.org and www.bensuperpc.org
Adminer Adminer for MariaDB adminer.bensuperpc.org
Portainer ce Portainer ce portainer.bensuperpc.org

URL

You can access to the website with:

Build with

License

License