My infrastructure with docker and Caddy for bensuperpc.org (WIP)
Go to file
Bensuperpc 870649e860
Update infra
Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2024-05-04 17:07:38 +02:00
.github Bump actions/checkout from 3 to 4 2023-12-10 09:35:08 +00:00
caddy Update infra 2024-05-04 17:07:38 +02:00
config/wordpress Update config location 2023-12-13 23:29:39 +01:00
env Update infra 2024-05-04 17:07:38 +02: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 infra 2024-05-04 17:07:38 +02:00
LICENSE Initial commit 2022-11-24 13:29:36 +01:00
Makefile Update infra 2024-05-04 17:07:38 +02:00
README.md Update infra 2024-05-04 17:07:38 +02: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 | Type | Description | | --- | --- | | bensuperpc.org | Main | Main domain | | adminer.bensuperpc.org | Sub | Adminer for MariaDB for wordpress only | | uptimekuma.bensuperpc.org | Sub | Uptime Kuma for monitoring | | torrent.bensuperpc.org | Sub | Torrent server | | git.bensuperpc.org | Sub | Gitea for git | | link.bensuperpc.org | Sub | For link shortener | | bensuperpc.com | Main | Redirect to bensuperpc.org | | bensuperpc.fr | Sub | Redirect to bensuperpc.org | | bensuperpc.net | Sub | Redirect to bensuperpc.org | | bensuperpc.ovh | Sub | 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 wordpress_db.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

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

GITEA__database__DB_TYPE=mysql
GITEA__database__HOST=database_gitea:3306
GITEA__database__NAME=gitea
GITEA__database__USER=bensuperpc
GITEA__database__PASSWD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j

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

MYSQL_ROOT_PASSWORD=xpc4zIhHZzWKqVHcjBu4aW6aS7jG8d7X
MYSQL_USER=bensuperpc
MYSQL_PASSWORD=K7s5yoHknnEd7vsZoxb8I3dK9mjToF1j
MYSQL_DATABASE=gitea

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