demo preliminare
This commit is contained in:
parent
4c89ae647f
commit
59b4ecc0ea
|
@ -0,0 +1,44 @@
|
|||
# setup iniziale
|
||||
|
||||
## container
|
||||
|
||||
Eseguire lo script `init.sh` per creare le directory di storage e i vari secret.
|
||||
|
||||
Eseguire lo script `tira_su_tutto.sh`.
|
||||
|
||||
## proxy
|
||||
|
||||
Se si sta usando un server remoto, accedere tramite SSH ed inoltrare la porta 81.
|
||||
|
||||
```sh
|
||||
ssh utente@server -L 81:127.0.0.1:81
|
||||
```
|
||||
|
||||
Accedere all'[interfaccia di amministrazione](http://127.0.0.1:81) con le credenziali di default:
|
||||
|
||||
- Email: `admin@example.com`
|
||||
- Password: `changeme`
|
||||
|
||||
Creare un Proxy Host con questi parametri:
|
||||
|
||||
- Dominio: `auth.esempio.com`
|
||||
- Schema: `http`
|
||||
- Hostname: `authelia`
|
||||
- Porta: `9091`
|
||||
|
||||
Creare un altro Proxy Host con questi parametri:
|
||||
|
||||
- Dominio: `claudia.esempio.com`
|
||||
- Schema: `http`
|
||||
- Hostname: `nextcloud`
|
||||
- Porta: `80`
|
||||
|
||||
NB: attivare https, altrimenti authelia non va...
|
||||
|
||||
## authelia
|
||||
|
||||
Accedi ad authelia all'indirizzo configurato prima, con queste credenziali:
|
||||
|
||||
- Utente: `authelia`
|
||||
- Password: `authelia`
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
config/*
|
||||
!config/configuration.yml
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,20 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
authelia:
|
||||
image: authelia/authelia
|
||||
container_name: authelia
|
||||
volumes:
|
||||
- ./config:/config
|
||||
networks:
|
||||
- proxy_backend
|
||||
expose:
|
||||
- 9091
|
||||
restart: always
|
||||
environment:
|
||||
- TZ=Europe/Rome
|
||||
|
||||
networks:
|
||||
proxy_backend:
|
||||
external: true
|
||||
driver: bridge
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
|
||||
MYDIR=$(dirname $0)
|
||||
source "${MYDIR}/config.vars"
|
||||
|
||||
sudo rm -rf \
|
||||
"${MYDIR}/proxy/data" \
|
||||
"${MYDIR}/proxy/letsencrypt" \
|
||||
"${MYDIR}/authelia/config" \
|
||||
"${MYDIR}/nextcloud/nextcloud_data" \
|
||||
"${MYDIR}/nextcloud/nextcloud_config" \
|
||||
"${MYDIR}/nextcloud/db" \
|
||||
"${MYDIR}/nextcloud/.env" \
|
||||
"${MYDIR}/nextcloud/redis"
|
|
@ -0,0 +1,3 @@
|
|||
AUTH_SERVICE=authelia
|
||||
PROXY_SERVICE=proxy
|
||||
OTHER_SERVICES=nextcloud
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/sh
|
||||
|
||||
which pwgen >/dev/null || (
|
||||
echo Per favore, installa pwgen
|
||||
exit 1
|
||||
)
|
||||
|
||||
MYDIR=$(dirname $0)
|
||||
source "${MYDIR}/config.vars"
|
||||
|
||||
mkdir -p \
|
||||
"${MYDIR}/proxy/data" \
|
||||
"${MYDIR}/proxy/letsencrypt" \
|
||||
"${MYDIR}/authelia/config" \
|
||||
"${MYDIR}/nextcloud/nextcloud_data" \
|
||||
"${MYDIR}/nextcloud/nextcloud_config" \
|
||||
"${MYDIR}/nextcloud/db" \
|
||||
"${MYDIR}/nextcloud/redis"
|
||||
|
||||
sudo chown -R 1000:1000 \
|
||||
"${MYDIR}/nextcloud/nextcloud_data" \
|
||||
"${MYDIR}/nextcloud/nextcloud_config"
|
||||
|
||||
if [ ! -f "${MYDIR}/nextcloud/.env" ] ; then
|
||||
cat >"${MYDIR}/nextcloud/.env" <<EOF
|
||||
MYSQL_ROOT_PASSWORD=$(pwgen -s 14 1)
|
||||
MYSQL_DATABASE=$(pwgen -s 14 1)
|
||||
MYSQL_USER=$(pwgen -s 14 1)
|
||||
MYSQL_PASSWORD=$(pwgen -s 14 1)
|
||||
EOF
|
||||
fi
|
|
@ -0,0 +1,5 @@
|
|||
db/
|
||||
nextcloud_config/
|
||||
nextcloud_data/
|
||||
redis/
|
||||
.env
|
|
@ -0,0 +1,56 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
|
||||
nextcloud:
|
||||
image: linuxserver/nextcloud:latest
|
||||
container_name: nextcloud
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Rome
|
||||
- REDIS_HOST=redis
|
||||
volumes:
|
||||
- ./nextcloud_data:/data
|
||||
- ./nextcloud_config:/config
|
||||
restart: always
|
||||
expose:
|
||||
- 80:80
|
||||
networks:
|
||||
- proxy_backend
|
||||
- default
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
links:
|
||||
- db
|
||||
- redis
|
||||
|
||||
db:
|
||||
image: mariadb:10
|
||||
# --innodb-read-only-compressed=OFF
|
||||
# https://github.com/nextcloud/server/issues/27085
|
||||
container_name: nextcloud_db
|
||||
command: --log-bin=mysqld-bin --binlog-format=ROW --innodb=on --innodb_file_per_table=1
|
||||
restart: always
|
||||
expose:
|
||||
- 3306:3306
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
|
||||
redis:
|
||||
image: redis:latest
|
||||
container_name: nextcloud_redis
|
||||
restart: always
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
|
||||
networks:
|
||||
proxy_backend:
|
||||
external: true
|
||||
name: proxy_backend
|
|
@ -0,0 +1,2 @@
|
|||
data/
|
||||
letsencrypt/
|
|
@ -0,0 +1,30 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
proxy:
|
||||
image: jc21/nginx-proxy-manager:latest
|
||||
container_name: proxy
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
- 443:443
|
||||
- 127.0.0.1:81:81 # console di gestione non esposta, si usa port redirect di ssh, oppure si crea un dominio dedicato
|
||||
networks:
|
||||
- default
|
||||
- proxy_backend
|
||||
environment:
|
||||
DB_SQLITE_FILE: "/data/database.sqlite"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
- ./logrotate.conf:/etc/logrotate.d/proxy_access
|
||||
healthcheck:
|
||||
test: ["CMD", "/bin/check-health"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
|
||||
networks:
|
||||
proxy_backend:
|
||||
external: false
|
||||
name: proxy_backend
|
||||
driver: bridge
|
|
@ -0,0 +1,12 @@
|
|||
/data/logs/proxy_host*.log {
|
||||
create 0644 root root
|
||||
weekly
|
||||
rotate 10
|
||||
missingok
|
||||
notifempty
|
||||
compress
|
||||
sharedscripts
|
||||
postrotate
|
||||
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
|
||||
endscript
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
MYDIR=$(dirname $0)
|
||||
source "${MYDIR}/config.vars"
|
||||
|
||||
for service in ${OTHER_SERVICES} ${AUTH_SERVICE} ${PROXY_SERVICE} ; do
|
||||
cd "${MYDIR}/${service}"
|
||||
docker compose down
|
||||
cd -
|
||||
done
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
MYDIR=$(dirname $0)
|
||||
source "${MYDIR}/config.vars"
|
||||
|
||||
for service in ${PROXY_SERVICE} ${AUTH_SERVICE} ${OTHER_SERVICES} ; do
|
||||
cd "${MYDIR}/${service}"
|
||||
docker compose up -d
|
||||
cd -
|
||||
done
|
||||
|
Loading…
Reference in New Issue