diff --git a/.gitignore b/.gitignore index ac00986..df913a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -server.crt -server.key +services/nginx/server.crt +services/nginx/server.key .env -services/nextcloud/db.env diff --git a/configure.bash b/configure.bash index 3dac8b6..4f29028 100755 --- a/configure.bash +++ b/configure.bash @@ -4,14 +4,18 @@ set -eu usage="Usage: $0 server_name project_root" server_name="${1:?$usage}" root="${2:?$usage}" + +# Configure hostname for Nginx sed -Ei "s/(^[[:blank:]]*server_name [^_][^.]*\.)[^;]*/\1${server_name}/" "$root"/services/nginx/default.conf + +# Configure hostname for OpenProject sed -Ei "s/(^OPENPROJECT_HOST__NAME=[^.]*\.).*/\1${server_name}/" "$root"/.env # Configure hostname for Gitea # Note that this works only if you use a docker volume named `tvcloud_gitea` (this project default). gitea_conf_file=/var/lib/docker/volumes/tvcloud_gitea/_data/gitea/conf/app.init if [[ ! -e $gitea_conf_file ]]; then - mkdir -p $(dirname "$gitea_conf_file") + mkdir -p "$(dirname "$gitea_conf_file")" touch "$gitea_conf_file" fi if grep -Eq "\[server\] ROOT_URL = https://gitea\." $gitea_conf_file; then diff --git a/readme.md b/readme.md index 22d91ed..4092eb6 100644 --- a/readme.md +++ b/readme.md @@ -10,11 +10,18 @@ This project is a personal cloud of services: 1. Generate a self-signed certificate for the proxy. ``` -host=tvcloud.fr -mkcert \ --cert-file services/nginx/server.crt \ --key-file services/nginx/server.key \ -gitea.$host nextcloud.$host openproject.$host $host 127.0.0.1 ::1 +host=yourdomain.com +mkcert -cert-file services/nginx/server.crt -key-file services/nginx/server.key \ +gitea.$host nextcloud.$host openproject.$host \ +$host 127.0.0.1 ::1 +``` + +Alternatively you can generate a real CA signed certificate (if your own a domain): + +``` +sudo certbot certonly --cert-path services/nginx/server.crt --key-path services/nginx/server.key \ +--manual --preferred-challenges dns --agree-tos --email admin@example.com \ +-d gitea.yourdomain.com -d nextcloud.yourdomain.com -d openproject.yourdomain.com ``` 2. Make a `.env` file (for `docker compose`). @@ -24,7 +31,7 @@ See `.example.env`. 3. Configure the host name. ``` -host=tvcloud.fr +host=yourdomain.com sudo ./configure.bash $host . ``` diff --git a/services/nginx/default.conf b/services/nginx/default.conf index 982d7d3..ee1d80c 100644 --- a/services/nginx/default.conf +++ b/services/nginx/default.conf @@ -20,7 +20,7 @@ server { server { listen 443 ssl; - server_name openproject.tvcloud.fr; + server_name openproject.yourdomain.com; ssl_certificate /etc/ssl/crt/server.crt; ssl_certificate_key /etc/ssl/crt/server.key; @@ -40,7 +40,7 @@ server { server { listen 443 ssl; - server_name gitea.tvcloud.fr; + server_name gitea.yourdomain.com; ssl_certificate /etc/ssl/crt/server.crt; ssl_certificate_key /etc/ssl/crt/server.key; @@ -61,7 +61,7 @@ server { # https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/fpm/web/nginx.conf server { listen 443 ssl; - server_name nextcloud.localhost; + server_name nextcloud.yourdomain.com; ssl_certificate /etc/ssl/crt/server.crt; ssl_certificate_key /etc/ssl/crt/server.key;