Update ini configuration. Add docker-compose examples

This commit is contained in:
Germán Martín 2024-05-27 13:26:24 +02:00
parent 0f4b06fa8f
commit f709b4753d
5 changed files with 232 additions and 31 deletions

38
.env.mariadb Normal file
View file

@ -0,0 +1,38 @@
# General Configuration
WRITEFREELY_BIND_PORT=8080
WRITEFREELY_BIND_HOST=0.0.0.0
WRITEFREELY_SITE_NAME="My Blog"
WRITEFREELY_SITE_DESCRIPTION="My fancy blog"
# Database Configuration
MARIADB_USER=writefreely
MARIADB_PASSWORD=changeme
MARIADB_DATABASE=writefreely
MARIADB_ROOT_PASSWORD=changeme
WRITEFREELY_DATABASE_DATABASE=mysql
WRITEFREELY_DATABASE_USERNAME=${MARIADB_USER}
WRITEFREELY_DATABASE_PASSWORD=${MARIADB_PASSWORD}
WRITEFREELY_DATABASE_NAME=${MARIADB_DATABASE}
WRITEFREELY_DATABASE_HOST=writefreely-db
WRITEFREELY_DATABASE_PORT=3306
# Application Settings
WRITEFREELY_HOST=
WRITEFREELY_SINGLE_USER=true
WRITEFREELY_OPEN_REGISTRATION=false
WRITEFREELY_MIN_USERNAME_LEN=4
WRITEFREELY_MAX_BLOG=4
WRITEFREELY_FEDERATION=true
WRITEFREELY_PUBLIC_STATS=true
WRITEFREELY_PRIVATE=false
WRITEFREELY_LOCAL_TIMELINE=true
WRITEFREELY_USER_INVITES=
# Writefreely Users
WRITEFREELY_ADMIN_USER=admin
WRITEFREELY_ADMIN_PASSWORD=changeme
WRITEFREELY_WRITER_USER=
WRITEFREELY_WRITER_PASSWORD=

31
.env.sqlite Normal file
View file

@ -0,0 +1,31 @@
# General Configuration
WRITEFREELY_BIND_PORT=8080
WRITEFREELY_BIND_HOST=0.0.0.0
WRITEFREELY_SITE_NAME="My Blog"
WRITEFREELY_SITE_DESCRIPTION="My fancy blog"
# Database Configuration
WRITEFREELY_DATABASE_DATABASE=sqlite3
WRITEFREELY_SQLITE_FILENAME=./writefreely.db
WRITEFREELY_DATABASE_USERNAME=writefreely
WRITEFREELY_DATABASE_PASSWORD=changeme
WRITEFREELY_DATABASE_NAME=writefreely
# Application Settings
WRITEFREELY_HOST=
WRITEFREELY_SINGLE_USER=true
WRITEFREELY_OPEN_REGISTRATION=false
WRITEFREELY_MIN_USERNAME_LEN=4
WRITEFREELY_MAX_BLOG=4
WRITEFREELY_FEDERATION=true
WRITEFREELY_PUBLIC_STATS=true
WRITEFREELY_PRIVATE=false
WRITEFREELY_LOCAL_TIMELINE=true
WRITEFREELY_USER_INVITES=
# Writefreely Users
WRITEFREELY_ADMIN_USER=admin
WRITEFREELY_ADMIN_PASSWORD=changeme
WRITEFREELY_WRITER_USER=
WRITEFREELY_WRITER_PASSWORD=

View file

@ -44,39 +44,121 @@ port = ${WRITEFREELY_BIND_PORT}
bind = ${WRITEFREELY_BIND_HOST} bind = ${WRITEFREELY_BIND_HOST}
tls_cert_path = tls_cert_path =
tls_key_path = tls_key_path =
autocert =
templates_parent_dir = /writefreely templates_parent_dir = /writefreely
static_parent_dir = /writefreely static_parent_dir = /writefreely
pages_parent_dir = /writefreely pages_parent_dir = /writefreely
keys_parent_dir = keys_parent_dir =
hash_seed =
gopher_port = 0
[database] [database]
type = ${WRITEFREELY_DATABASE_DATABASE} type = ${WRITEFREELY_DATABASE_DATABASE}
filename = ${WRITEFREELY_SQLITE_FILENAME}
username = ${WRITEFREELY_DATABASE_USERNAME} username = ${WRITEFREELY_DATABASE_USERNAME}
password = ${WRITEFREELY_DATABASE_PASSWORD} password = ${WRITEFREELY_DATABASE_PASSWORD}
database = ${WRITEFREELY_DATABASE_NAME} database = ${WRITEFREELY_DATABASE_NAME}
host = ${WRITEFREELY_DATABASE_HOST} host = ${WRITEFREELY_DATABASE_HOST}
port = ${WRITEFREELY_DATABASE_PORT} port = ${WRITEFREELY_DATABASE_PORT}
tls = false
[app] [app]
site_name = ${WRITEFREELY_SITE_NAME} site_name = ${WRITEFREELY_SITE_NAME}
site_description = ${WRITEFREELY_SITE_DESCRIPTION} site_description = ${WRITEFREELY_SITE_DESCRIPTION}
host = ${WRITEFREELY_HOST:-http://${WRITEFREELY_BIND_HOST}:${WRITEFREELY_BIND_PORT}} host = ${WRITEFREELY_HOST:-http://${WRITEFREELY_BIND_HOST}:${WRITEFREELY_BIND_PORT}}
theme = write theme = write
editor =
disable_js = false disable_js = false
webfonts = true webfonts = true
landing = landing =
simple_nav = false
wf_modesty = false
chorus = false
forest = false
disable_drafts = false
single_user = ${WRITEFREELY_SINGLE_USER:-false} single_user = ${WRITEFREELY_SINGLE_USER:-false}
open_registration = ${WRITEFREELY_OPEN_REGISTRATION:-false} open_registration = ${WRITEFREELY_OPEN_REGISTRATION:-false}
min_username_len = ${WRITEFREELY_MIN_USERNAME_LEN:-3} min_username_len = ${WRITEFREELY_MIN_USERNAME_LEN:-3}
max_blogs = ${WRITEFREELY_MAX_BLOG:-1} max_blogs = ${WRITEFREELY_MAX_BLOG:-4}
federation = ${WRITEFREELY_FEDERATION:-true} federation = ${WRITEFREELY_FEDERATION:-true}
public_stats = ${WRITEFREELY_PUBLIC_STATS:-false} public_stats = ${WRITEFREELY_PUBLIC_STATS:-false}
monetization = false
notes_only = false
private = ${WRITEFREELY_PRIVATE:-false} private = ${WRITEFREELY_PRIVATE:-false}
local_timeline = ${WRITEFREELY_LOCAL_TIMELINE:-false} local_timeline = ${WRITEFREELY_LOCAL_TIMELINE:-false}
user_invites = ${WRITEFREELY_USER_INVITES} user_invites = ${WRITEFREELY_USER_INVITES}
update_checks = false
disable_password_auth = false
[email]
domain =
mailgun_private =
[oauth.slack]
client_id =
client_secret =
team_id =
callback_proxy =
callback_proxy_api =
[oauth.writeas]
client_id =
client_secret =
auth_location =
token_location =
inspect_location =
callback_proxy =
callback_proxy_api =
[oauth.gitlab]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
[oauth.gitea]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
[oauth.generic]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
token_endpoint =
inspect_endpoint =
auth_endpoint =
scope =
allow_disconnect = false
map_user_id =
map_username =
map_display_name =
map_email =
EOF EOF
chmod 600 ./config.ini
${WRITEFREELY} --init-db ${WRITEFREELY} --init-db
${WRITEFREELY} --gen-keys ${WRITEFREELY} --gen-keys
if [ -n "$WRITEFREELY_ADMIN_USER" ]; then
${WRITEFREELY} user create --admin ${WRITEFREELY_ADMIN_USER}:${WRITEFREELY_ADMIN_PASSWORD}
echo Created user ${WRITEFREELY_ADMIN_USER}
else
echo Admin user not defined
exit 1
fi
if [ -n "$WRITEFREELY_WRITER_USER" ]; then
${WRITEFREELY} user create ${WRITEFREELY_WRITER_USER}:${WRITEFREELY_WRITER_PASSWORD}
echo Created user ${WRITEFREELY_WRITER_USER}
fi
exec ${WRITEFREELY} exec ${WRITEFREELY}

View file

@ -0,0 +1,35 @@
services:
writefreely-web:
container_name: writefreely-web
image: gmag11/writefreely:latest
build:
context: .
init: true
env_file:
- .env.mariadb
volumes:
- ./data:/data
ports:
- 8080:8080
depends_on:
writefreely-db:
condition: service_healthy
restart: unless-stopped
writefreely-db:
container_name: writefreely-db
image: mariadb:latest
init: true
volumes:
- ./db-data:/var/lib/mysql
networks:
- internal
env_file:
- .env.mariadb
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "mariadb-admin ping -h localhost -u${MARIADB_USER} -p${MARIADB_PASSWORD} || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s

View file

@ -0,0 +1,15 @@
services:
writefreely-web:
container_name: writefreely-web
image: gmag11/writefreely:latest
build:
context: .
init: true
env_file:
- .env.sqlite
volumes:
- ./data:/data
ports:
- 8080:8080
restart: unless-stopped