# writefreely > An open source platform for building a writing space on the web. - **Category**: Apps - **Status**: 2, beta - **Image**: [`writeas/writefreely`](https://hub.docker.com/r/writeas/writefreely), 4, upstream - **Healthcheck**: 3 - **Backups**: 1 - **Email**: 3 - **Tests**: No - **SSO**: 1 ## Basic usage 1. Set up Docker Swarm and [`abra`] 2. Deploy [`coop-cloud/traefik`] 3. `abra app new writefreely --secrets` (optionally with `--pass` if you'd like to save secrets in `pass`) 4. `abra app YOURAPPDOMAIN config` - be sure to change `DOMAIN` to something that resolves to your Docker swarm box 5. `abra app YOURAPPDOMAIN deploy` 6. Open the configured domain in your browser to finish set-up ## Post-install ``` ./first_deploy.sh ``` ## Keycloak setup Until [this](https://github.com/writefreely/writefreely/issues/516) is fixed, you have to migrate the db yourself. Get into a db shell with the following: ``` db_passwd=$(abra app run db cat /run/secrets/db_password) abra app run db mysql -u writeas -p"$db_passwd" writefreely ``` Run the migration: ``` ALTER TABLE 'oauth_users' MODIFY 'access_token' varchar(2048); ``` For the **OAUTH_HOST** config, it uses this format: `https://keycloak.domain.here/auth/realms//protocol/openid-connect`. ## Acknowledgements Thanks to [@knoflook](https://git.coopcloud.tech/knoflook) for packaging work :heart: