This commit is contained in:
2025-12-23 11:29:15 +01:00
parent bf27182e35
commit b2f2b6c021
6 changed files with 15 additions and 31 deletions

1
.example.env Normal file
View File

@@ -0,0 +1 @@
DOMAIN=localhost

View File

@@ -18,6 +18,8 @@ services:
proxy:
build:
context: ./services/nginx
args:
DOMAIN: ${DOMAIN:?DOMAIN not set}
networks:
- nextcloud-frontend
- gitea-frontend

View File

@@ -21,11 +21,9 @@ Alternatively to generate a CA signed certificate (if your own a domain):
./tools/generate_cert.bash yourdomain.com admin@email.com .
```
2. Configure the host name (e.g. for `localhost`):
2. Make a `.env` configuration file
```
./tools/configure.bash localhost .
```
See `.example.env`.
3. Start the services.

View File

@@ -1,5 +1,7 @@
FROM nginx:1.28-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf
ARG DOMAIN
COPY ./default.template.conf /tmp/default.template.conf
RUN envsubst '$DOMAIN' < /tmp/default.template.conf > /etc/nginx/conf.d/default.conf
COPY ./server.key /etc/ssl/crt/server.key
COPY ./server.crt /etc/ssl/crt/server.crt

View File

@@ -13,14 +13,17 @@ upstream php-handler {
server {
listen 80;
server_name _;
server_name ${DOMAIN} www.${DOMAIN}
nextcloud.${DOMAIN}
gitea.${DOMAIN}
redmine.${DOMAIN};
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name gitea.yourdomain.com;
server_name gitea.${DOMAIN};
ssl_certificate /etc/ssl/crt/server.crt;
ssl_certificate_key /etc/ssl/crt/server.key;
@@ -40,7 +43,7 @@ server {
server {
listen 443 ssl;
server_name redmine.yourdomain.com;
server_name redmine.${DOMAIN};
ssl_certificate /etc/ssl/crt/server.crt;
ssl_certificate_key /etc/ssl/crt/server.key;
@@ -53,7 +56,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.yourdomain.com;
server_name nextcloud.${DOMAIN};
ssl_certificate /etc/ssl/crt/server.crt;
ssl_certificate_key /etc/ssl/crt/server.key;

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env bash
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 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
sudo mkdir -p "$(dirname "$gitea_conf_file")"
sudo touch "$gitea_conf_file"
fi
if sudo grep -Eq "\[server\] ROOT_URL = https://gitea\." $gitea_conf_file; then
sudo sed -Ei "s/(\[server\] ROOT_URL = https:\/\/gitea\.).*/\1$server_name/" "$gitea_conf_file"
else
echo "[server] ROOT_URL = https://gitea.${server_name}/" | sudo tee -a "$gitea_conf_file" >/dev/null
fi