Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
4ce0b53699
|
|||
|
888510202e
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
server.crt
|
services/nginx/server.crt
|
||||||
server.key
|
services/nginx/server.key
|
||||||
.env
|
.env
|
||||||
services/nextcloud/db.env
|
|
||||||
|
|||||||
@@ -4,14 +4,18 @@ set -eu
|
|||||||
usage="Usage: $0 server_name project_root"
|
usage="Usage: $0 server_name project_root"
|
||||||
server_name="${1:?$usage}"
|
server_name="${1:?$usage}"
|
||||||
root="${2:?$usage}"
|
root="${2:?$usage}"
|
||||||
|
|
||||||
|
# Configure hostname for Nginx
|
||||||
sed -Ei "s/(^[[:blank:]]*server_name [^_][^.]*\.)[^;]*/\1${server_name}/" "$root"/services/nginx/default.conf
|
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
|
sed -Ei "s/(^OPENPROJECT_HOST__NAME=[^.]*\.).*/\1${server_name}/" "$root"/.env
|
||||||
|
|
||||||
# Configure hostname for Gitea
|
# Configure hostname for Gitea
|
||||||
# Note that this works only if you use a docker volume named `tvcloud_gitea` (this project default).
|
# 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
|
gitea_conf_file=/var/lib/docker/volumes/tvcloud_gitea/_data/gitea/conf/app.init
|
||||||
if [[ ! -e $gitea_conf_file ]]; then
|
if [[ ! -e $gitea_conf_file ]]; then
|
||||||
mkdir -p $(dirname "$gitea_conf_file")
|
mkdir -p "$(dirname "$gitea_conf_file")"
|
||||||
touch "$gitea_conf_file"
|
touch "$gitea_conf_file"
|
||||||
fi
|
fi
|
||||||
if grep -Eq "\[server\] ROOT_URL = https://gitea\." $gitea_conf_file; then
|
if grep -Eq "\[server\] ROOT_URL = https://gitea\." $gitea_conf_file; then
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ services:
|
|||||||
|
|
||||||
nextcloud:
|
nextcloud:
|
||||||
image: nextcloud:31-fpm
|
image: nextcloud:31-fpm
|
||||||
|
build:
|
||||||
|
context: ./services/nextcloud
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_HOST=nextcloud-db
|
- MYSQL_HOST=nextcloud-db
|
||||||
- MYSQL_PASSWORD=pswd
|
- MYSQL_PASSWORD=pswd
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ This project is a personal cloud of services:
|
|||||||
1. Generate a self-signed certificate for the proxy.
|
1. Generate a self-signed certificate for the proxy.
|
||||||
|
|
||||||
```
|
```
|
||||||
host=tvcloud.fr
|
host=yourdomain.com
|
||||||
mkcert \
|
mkcert \
|
||||||
-cert-file services/nginx/server.crt \
|
-cert-file services/nginx/server.crt \
|
||||||
-key-file services/nginx/server.key \
|
-key-file services/nginx/server.key \
|
||||||
@@ -24,7 +24,7 @@ See `.example.env`.
|
|||||||
3. Configure the host name.
|
3. Configure the host name.
|
||||||
|
|
||||||
```
|
```
|
||||||
host=tvcloud.fr
|
host=yourdomain.com
|
||||||
sudo ./configure.bash $host .
|
sudo ./configure.bash $host .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
7
services/mariadb/init.sql
Normal file
7
services/mariadb/init.sql
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
|
||||||
|
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
GRANT ALL PRIVILEGES on nextcloud.* to 'nextcloud'@'localhost';
|
||||||
|
|
||||||
|
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'password';
|
||||||
|
CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||||
|
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
|
||||||
40
services/mariadb/my.cnf
Normal file
40
services/mariadb/my.cnf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[mariadb]
|
||||||
|
host-cache-size = 128
|
||||||
|
skip-name-resolve = true
|
||||||
|
|
||||||
|
[mysqld]
|
||||||
|
transaction_isolation = READ-COMMITTED
|
||||||
|
binlog_format = ROW
|
||||||
|
|
||||||
|
[server]
|
||||||
|
skip_name_resolve = 1
|
||||||
|
innodb_buffer_pool_size = 128M
|
||||||
|
innodb_buffer_pool_instances = 1
|
||||||
|
innodb_flush_log_at_trx_commit = 2
|
||||||
|
innodb_log_buffer_size = 32M
|
||||||
|
innodb_max_dirty_pages_pct = 90
|
||||||
|
query_cache_type = 1
|
||||||
|
query_cache_limit = 2M
|
||||||
|
query_cache_min_res_unit = 2k
|
||||||
|
query_cache_size = 64M
|
||||||
|
tmp_table_size= 64M
|
||||||
|
max_heap_table_size= 64M
|
||||||
|
slow_query_log = 1
|
||||||
|
slow_query_log_file = /var/log/mysql/slow.log
|
||||||
|
long_query_time = 1
|
||||||
|
|
||||||
|
[client-server]
|
||||||
|
!includedir /etc/mysql/conf.d/
|
||||||
|
!includedir /etc/mysql/mariadb.conf.d/
|
||||||
|
|
||||||
|
[client]
|
||||||
|
default-character-set = utf8mb4
|
||||||
|
|
||||||
|
[mysqld]
|
||||||
|
character_set_server = utf8mb4
|
||||||
|
collation_server = utf8mb4_general_ci
|
||||||
|
transaction_isolation = READ-COMMITTED
|
||||||
|
binlog_format = ROW
|
||||||
|
innodb_large_prefix=on
|
||||||
|
innodb_file_format=barracuda
|
||||||
|
innodb_file_per_table=1
|
||||||
3
services/nextcloud/Dockerfile
Normal file
3
services/nextcloud/Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM nextcloud:31-fpm
|
||||||
|
|
||||||
|
COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini
|
||||||
16
services/nextcloud/mysql.ini
Normal file
16
services/nextcloud/mysql.ini
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# configuration for PHP MySQL module
|
||||||
|
extension=pdo_mysql.so
|
||||||
|
|
||||||
|
[mysql]
|
||||||
|
mysql.allow_local_infile=On
|
||||||
|
mysql.allow_persistent=On
|
||||||
|
mysql.cache_size=2000
|
||||||
|
mysql.max_persistent=-1
|
||||||
|
mysql.max_links=-1
|
||||||
|
mysql.default_port=
|
||||||
|
mysql.default_socket=/var/lib/mysql/mysql.sock # Debian squeeze: /var/run/mysqld/mysqld.sock
|
||||||
|
mysql.default_host=
|
||||||
|
mysql.default_user=
|
||||||
|
mysql.default_password=
|
||||||
|
mysql.connect_timeout=60
|
||||||
|
mysql.trace_mode=Off
|
||||||
@@ -20,7 +20,7 @@ server {
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
server_name openproject.tvcloud.fr;
|
server_name openproject.yourdomain.com;
|
||||||
|
|
||||||
ssl_certificate /etc/ssl/crt/server.crt;
|
ssl_certificate /etc/ssl/crt/server.crt;
|
||||||
ssl_certificate_key /etc/ssl/crt/server.key;
|
ssl_certificate_key /etc/ssl/crt/server.key;
|
||||||
@@ -40,7 +40,7 @@ server {
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
server_name gitea.tvcloud.fr;
|
server_name gitea.yourdomain.com;
|
||||||
|
|
||||||
ssl_certificate /etc/ssl/crt/server.crt;
|
ssl_certificate /etc/ssl/crt/server.crt;
|
||||||
ssl_certificate_key /etc/ssl/crt/server.key;
|
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
|
# https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/mariadb/fpm/web/nginx.conf
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
server_name nextcloud.localhost;
|
server_name nextcloud.yourdomain.com;
|
||||||
|
|
||||||
ssl_certificate /etc/ssl/crt/server.crt;
|
ssl_certificate /etc/ssl/crt/server.crt;
|
||||||
ssl_certificate_key /etc/ssl/crt/server.key;
|
ssl_certificate_key /etc/ssl/crt/server.key;
|
||||||
|
|||||||
Reference in New Issue
Block a user