Add Writefreely service (#230)

* Add writefreely service

* Make writefreely.md better readable

* Change source of writefreely role from self-hosted to github

* Reintroduce admin environment variables

* Update writefreely.md

---------

Co-authored-by: timofej <timofej@vivaldi.net>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
This commit is contained in:
ZenKyma 2024-07-09 05:55:29 +02:00 committed by GitHub
parent f929f1720e
commit a246db29a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 161 additions and 0 deletions

View file

@ -89,3 +89,4 @@
* Woodpecker Ci Agent: v2.6.0 * Woodpecker Ci Agent: v2.6.0
* Woodpecker Ci Server: v2.6.0 * Woodpecker Ci Server: v2.6.0
* Wordpress: 6.5.5 * Wordpress: 6.5.5
* Writefreely: v0.15.0

View file

@ -0,0 +1,83 @@
# WriteFreely
[WriteFreely](https://github.com/writefreely/writefreely) is a clean, minimalist publishing platform made for writers, federated via ActivityPub.
## Dependencies
This service requires the following other services:
- a [Traefik](traefik.md) reverse-proxy server
WriteFreely supports using a [MariaDB](./mariadb.md) database, but this Ansible role and playbook are not configured to make use of it.
## Configuration
To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process:
```yaml
########################################################################
# #
# writefreely #
# #
########################################################################
writefreely_enabled: true
writefreely_hostname: writefreely.example.com
writefreely_instance_name: 'A Writefreely blog' # optional
writefreely_instance_description: 'My Writefreely blog' # optional
########################################################################
# #
# /writefreely #
# #
########################################################################
```
In the example above, we configure the service to be hosted at `writefreely.example.com`.
You can add the following variables to add an administrator user during the first setup process:
```yml
# You can use any username except "admin" (see below)
writefreely_env_admin_user: ''
writefreely_env_admin_password: ''
```
Alternatively you can add admins after [installation](./installing.md) with:
```sh
just run-tags writefreely-add-admin --extra-vars=username=<username> --extra-vars=password=<password>
```
**Note that the username `admin` is unavailable**, as `writefreely.example.com/admin` is already taken by the admin dashboard.
Additional user accounts can be added at any time once WriteFreely is running with:
```sh
just run-tags writefreely-add-user --extra-vars=username=<username> --extra-vars=password=<password>
```
Their respective blogs can then be accessed on `writefreely.example.com/<username>`.
## Settings
To customize your settings on first setup, you can adjust the `writefreely_env_*` default variables.
After installation, changes in environment variables will be ignored. But you can still change the settings at `writefreely.example.com/admin/settings` or by directly changing `/mash/writefreely/data/config.ini`.
## Maintenance
In case you need to run maintenance tasks as documented in [Admin commands](https://writefreely.org/docs/main/admin/commands), you can run the following commands on the server:
```sh
/usr/bin/docker exec mash-writefreely /writefreely/writefreely -c /data/config.ini [command]
```
For example, to delete an existing user, run:
```sh
/usr/bin/docker exec mash-writefreely /writefreely/writefreely -c /data/config.ini user delete [username]
```

View file

@ -87,6 +87,7 @@
| [Forgejo](https://forgejo.org/) | An alternative fork of Gitea. Easy and painless self-hosted git server. | [Link](services/forgejo.md) | | [Forgejo](https://forgejo.org/) | An alternative fork of Gitea. Easy and painless self-hosted git server. | [Link](services/forgejo.md) |
| [Woodpecker CI](https://woodpecker-ci.org/) | A simple Continuous Integration (CI) engine with great extensibility. | [Link](services/woodpecker-ci.md) | | [Woodpecker CI](https://woodpecker-ci.org/) | A simple Continuous Integration (CI) engine with great extensibility. | [Link](services/woodpecker-ci.md) |
| [WordPress](https://wordpress.org/) | A widley used open source web content management system | [Link](services/wordpress.md) | | [WordPress](https://wordpress.org/) | A widley used open source web content management system | [Link](services/wordpress.md) |
| [Writefreely](https://writefreely.org) | A clean, minimalist publishing platform made for writers with optional federation via ActivityPub. | [Link](services/writefreely.md) |
| System-related | A collection of various system-related components | [Link](services/system.md) | | System-related | A collection of various system-related components | [Link](services/system.md) |

View file

@ -629,6 +629,12 @@ mash_playbook_devture_systemd_service_manager_services_list_auto_itemized:
{{ ({'name': (forgejo_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'forgejo', 'forgejo-server']} if forgejo_enabled else omit) }} {{ ({'name': (forgejo_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'forgejo', 'forgejo-server']} if forgejo_enabled else omit) }}
# /role-specific:forgejo # /role-specific:forgejo
# role-specific:writefreely
- |-
{{ ({'name': (writefreely_identifier + '.service'), 'priority': 2000, 'groups': ['mash', 'writefreely']} if writefreely_enabled else omit) }}
# /role-specific:writefreely
devture_systemd_service_manager_services_list_auto: "{{ mash_playbook_devture_systemd_service_manager_services_list_auto_itemized | reject('equalto', omit) }}" devture_systemd_service_manager_services_list_auto: "{{ mash_playbook_devture_systemd_service_manager_services_list_auto_itemized | reject('equalto', omit) }}"
######################################################################## ########################################################################
@ -2724,6 +2730,16 @@ hubsite_service_woodpecker_ci_description: "Check you CI"
hubsite_service_woodpecker_ci_priority: 1000 hubsite_service_woodpecker_ci_priority: 1000
# /role-specific:woodpecker_ci_server # /role-specific:woodpecker_ci_server
# role-specific:writefreely
# writefreely
hubsite_service_writefreely_enabled: "{{ writefreely_enabled }}"
hubsite_service_writefreely_name: writefreely
hubsite_service_writefreely_url: "https://{{ writefreely_hostname }}"
hubsite_service_writefreely_logo_location: "{{ role_path }}/assets/writefreely.png"
hubsite_service_writefreely_description: "A minimalist web blog"
hubsite_service_writefreely_priority: 1000
# /role-specific:writefreely
# role-specific:forgejo # role-specific:forgejo
# Forgejo # Forgejo
hubsite_service_forgejo_enabled: "{{ forgejo_enabled }}" hubsite_service_forgejo_enabled: "{{ forgejo_enabled }}"
@ -3077,6 +3093,19 @@ mash_playbook_hubsite_service_list_auto_itemized:
}} }}
# /role-specific:woodpecker_ci_server # /role-specific:woodpecker_ci_server
# role-specific:writefreely
- |-
{{
({
'name': hubsite_service_writefreely_name,
'url': hubsite_service_writefreely_url,
'logo_location': hubsite_service_writefreely_logo_location,
'description': hubsite_service_writefreely_description,
'priority': hubsite_service_writefreely_priority,
} if hubsite_service_writefreely_enabled else omit)
}}
# /role-specific:writefreely
hubsite_service_list_auto: "{{ mash_playbook_hubsite_service_list_auto_itemized | reject('equalto', omit) }}" hubsite_service_list_auto: "{{ mash_playbook_hubsite_service_list_auto_itemized | reject('equalto', omit) }}"
######################################################################## ########################################################################
@ -5441,6 +5470,7 @@ devture_woodpecker_ci_agent_config_agent_secret: "{{ devture_woodpecker_ci_serve
# /role-specific:woodpecker_ci_agent # /role-specific:woodpecker_ci_agent
# role-specific:wordpress # role-specific:wordpress
######################################################################## ########################################################################
# # # #
@ -5486,3 +5516,41 @@ wordpress_database_password: "{{ '%s' | format(mash_playbook_generic_secret_key)
# # # #
######################################################################## ########################################################################
# /role-specific:wordpress # /role-specific:wordpress
# role-specific:writefreely
########################################################################
# #
# writefreely #
# #
########################################################################
writefreely_enabled: false
writefreely_identifier: "{{ mash_playbook_service_identifier_prefix }}writefreely"
writefreely_uid: "{{ mash_playbook_uid }}"
writefreely_gid: "{{ mash_playbook_gid }}"
writefreely_base_path: "{{ mash_playbook_base_path }}/{{ mash_playbook_service_base_directory_name_prefix }}writefreely"
writefreely_container_additional_networks_auto: |
{{
([mash_playbook_reverse_proxyable_services_additional_network] if mash_playbook_reverse_proxyable_services_additional_network else [])
}}
writefreely_container_labels_traefik_enabled: "{{ mash_playbook_traefik_labels_enabled }}"
writefreely_container_labels_traefik_docker_network: "{{ mash_playbook_reverse_proxyable_services_additional_network }}"
# role-specific:traefik
writefreely_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
writefreely_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"
# /role-specific:traefik
########################################################################
# #
# /writefreely #
# #
########################################################################
# /role-specific:writefreely

View file

@ -395,3 +395,7 @@
version: v6.5.5-2 version: v6.5.5-2
name: wordpress name: wordpress
activation_prefix: wordpress_ activation_prefix: wordpress_
- src: git+https://github.com/ZenKyma/ansible-role-writefreely.git
version: v0.15.0-1
name: writefreely
activation_prefix: writefreely_

View file

@ -411,6 +411,10 @@
- role: galaxy/wordpress - role: galaxy/wordpress
# /role-specific:wordpress # /role-specific:wordpress
# role-specific:writefreely
- role: galaxy/writefreely
# /role-specific:writefreely
# role-specific:roundcube # role-specific:roundcube
- role: galaxy/roundcube - role: galaxy/roundcube
# /role-specific:roundcube # /role-specific:roundcube