Compare commits

...

24 Commits

Author SHA1 Message Date
Moritz 65ec56ac08 add alakazam integration file alaconnect.yml
continuous-integration/drone/push Build is passing Details
2024-05-13 17:41:59 +02:00
Moritz e8f1186965 chore: publish 1.0.1+1.9.9 release
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
2024-04-17 17:14:23 +02:00
Moritz 66c5160812 fix backupbot label 2024-04-17 17:07:53 +02:00
trav c656afb176 chore: publish 1.0.0+1.9.9 release
continuous-integration/drone/push Build is passing Details
2023-12-13 07:49:46 -08:00
Cassowary 97f2d94079 chore: publish 0.6.0+1.9.9 release
continuous-integration/drone/push Build is passing Details
2023-10-26 11:14:40 -07:00
Moritz 4846a09169 add timeout label
continuous-integration/drone/push Build is passing Details
2023-10-19 22:50:23 +02:00
knoflook 210a37cd0c fix permissions for real
continuous-integration/drone/push Build is passing Details
2023-10-13 17:10:41 +02:00
3wc 914ef6b026 Spooky permissions fix?
continuous-integration/drone/push Build is passing Details
See https://github.com/hedgedoc/container/issues/463
2023-10-02 19:11:13 +01:00
mayel 5f205c149f Merge pull request 'update outdated readme + add restore hook' (#10) from mayel-patch-1 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #10
2023-07-29 11:37:09 +00:00
mayel d2c8993fcc Update compose.yml
continuous-integration/drone/pr Build is failing Details
2023-07-29 10:42:49 +00:00
mayel 1c93adcf21 add restore hook
continuous-integration/drone/pr Build is failing Details
2023-07-29 10:42:21 +00:00
mayel 7970e7c61e typo
continuous-integration/drone/pr Build is failing Details
2023-07-28 23:08:08 +00:00
mayel e14f050ede update outdated readme based on docker compose file
continuous-integration/drone/pr Build is failing Details
2023-07-28 22:55:38 +00:00
3wc 5fd556d358 chore: publish 0.5.1+1.9.8 release
continuous-integration/drone/push Build is passing Details
2023-07-08 19:39:01 +01:00
3wc 4c2417901e Switch to self-hosted stack-ssh-deploy image [mass update]
continuous-integration/drone/push Build is passing Details
2023-01-21 11:49:55 -08:00
3wc 6bc2679dee Fix CI by adding networks: [mass update]
continuous-integration/drone/push Build is passing Details
2023-01-20 11:58:41 -08:00
3wc d2d5b8ceb1 Automatically generate catalogue on release [mass update]
continuous-integration/drone/push Build is failing Details
Re: coop-cloud/recipes-catalogue-json#4
2023-01-20 10:27:11 -08:00
3wc afd3b03b21 Update abra syntax in examples (finally) [mass update]
continuous-integration/drone/push Build is failing Details
2023-01-19 16:02:27 -08:00
decentral1se b43724ecba Merge pull request 'Add configuration option for maximum note length' (#8) from wolcen/hedgedoc:main into main
continuous-integration/drone/push Build is failing Details
Reviewed-on: #8
2022-12-15 20:29:18 +00:00
Chris Thompson 8e973cbed1 Closing `'s seem not required when indented
continuous-integration/drone/pr Build is failing Details
Otherwise, extra `` prints on README display.
2022-12-15 20:10:29 +00:00
Chris Thompson 7780eb9f13 Bump configuration version 2022-12-15 15:05:13 -05:00
Chris Thompson 9e88945b9b Corrections to get config updating and effective 2022-12-15 15:05:02 -05:00
Chris Thompson 6139cff626 Correct link 2022-12-15 14:39:19 -05:00
Chris Thompson 0c96d5a45f Add config file template for documentMaxLength setting 2022-12-15 14:39:14 -05:00
9 changed files with 74 additions and 21 deletions

View File

@ -3,10 +3,12 @@ kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: decentral1se/stack-ssh-deploy:latest
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: hedgedoc
networks:
- proxy
deploy_key:
from_secret: drone_ssh_swarm_test
generate_secrets: true
@ -22,11 +24,17 @@ trigger:
- main
---
kind: pipeline
name: recipe release
name: generate recipe catalogue
steps:
- name: release a new version
image: thecoopcloud/drone-abra:latest
image: plugins/downstream
settings:
command: recipe hedgedoc release
deploy_key:
from_secret: abra_bot_deploy_key
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- coop-cloud/auto-recipes-catalogue-json
trigger:
event: tag

View File

@ -1,4 +1,6 @@
TYPE=hedgedoc
TIMEOUT=300
ENABLE_AUTO_UPDATE=true
DOMAIN=hedgedoc.example.com
## Domain aliases
@ -41,3 +43,5 @@ COMPOSE_FILE="compose.yml"
# CMD_DEFAULT_PERMISSION=editable
# CMD_EMAIL=true
# CMD_SESSION_LIFE=1209600000
# Only present in config.json (no equivalent env var):
# DOCUMENT_MAX_LENGTH=100000

View File

@ -7,9 +7,9 @@
<!-- metadata -->
* **Category**: Apps
* **Status**: 2, beta
* **Image**: [`quay.io/hedgedoc/hedgedoc:1.8.2`](https://quay.io/hedgedoc/hedgedoc:1.8.2), 4, upstream
* **Image**: [`quay.io/hedgedoc/hedgedoc`](https://quay.io/hedgedoc/hedgedoc), 4, upstream
* **Healthcheck**: Yes
* **Backups**: No
* **Backups**: Yes
* **Email**: No
* **Tests**: 2
* **SSO**: 3 (OAuth)
@ -19,17 +19,16 @@
1. Set up Docker Swarm and [`abra`][abra]
2. Deploy [`coop-cloud/traefik`][compose-traefik]
3. `abra app new hedegedoc`
4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to
3. `abra app new hedgedoc`
4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to
your Docker swarm box
5. `abra app YOURAPPDOMAIN deploy`
5. `abra app deploy YOURAPPDOMAIN`
6. Create initial user:
```
abra app YOURAPPDOMAIN run app bash
. /docker-entrypoint2.sh -e
bin/manage_users
```
[hedegedoc]: https://github.com/hackmdio/hedegedoc
[hedegedoc]: https://github.com/hedgedoc/hedgedoc
[abra]: https://git.autonomic.zone/autonomic-cooperative/abra
[compose-traefik]: https://git.autonomic.zone/coop-cloud/traefik
[compose-traefik]: https://git.autonomic.zone/coop-cloud/traefik

View File

@ -1,4 +1,4 @@
export ENTRYPOINT_CONF_VERSION=v5
export ENTRYPOINT_CONF_VERSION=v8
abra_backup_app() {
_abra_backup_dir "app:/home/hackmd/app/public/uploads/"

15
alaconnect.yml Normal file
View File

@ -0,0 +1,15 @@
authentik:
env:
CMD_OAUTH2_USER_PROFILE_URL: https://authentik.example.com/application/o/userinfo/
CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR: preferred_username
CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR: name
CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR: email
CMD_OAUTH2_TOKEN_URL: https://authentik.example.com/application/o/token/
CMD_OAUTH2_AUTHORIZATION_URL: https://authentik.example.com/application/o/authorize/
CMD_OAUTH2_CLIENT_ID: hedgedoc
CMD_OAUTH2_PROVIDERNAME: Authentik
uncomment:
- compose.oauth.yml
- SECRET_OAUTH_KEY_VERSION
shared_secrets:
hedgedoc_secret: oauth_key

View File

@ -1,7 +1,7 @@
version: "3.8"
services:
app:
image: quay.io/hedgedoc/hedgedoc:1.9.6
image: quay.io/hedgedoc/hedgedoc:1.9.9
environment:
- CMD_USECDN=false
- CMD_URL_ADDPORT=false
@ -26,6 +26,7 @@ services:
- CMD_DEFAULT_PERMISSION
- CMD_EMAIL
- CMD_SESSION_LIFE
- DOCUMENT_MAX_LENGTH
depends_on:
- db
networks:
@ -40,6 +41,9 @@ services:
- source: entrypoint_conf
target: /docker-entrypoint.sh
mode: 0555
- source: config_json
target: /files/config.json
mode: 0555
deploy:
restart_policy:
condition: on-failure
@ -53,7 +57,8 @@ services:
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
- coop-cloud.${STACK_NAME}.version=0.5.0+1.9.6
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
- "coop-cloud.${STACK_NAME}.version=1.0.1+1.9.9"
healthcheck:
test: "nodejs -e \"http.get('http://localhost:3000', (res) => { console.log('status: ', res.statusCode); if (res.statusCode == 200) { process.exit(0); } else { process.exit(1); } });\""
interval: 30s
@ -61,7 +66,7 @@ services:
retries: 10
start_period: 1m
db:
image: postgres:11.18-alpine
image: postgres:16.1-alpine
environment:
- POSTGRES_USER=codimd
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
@ -75,9 +80,11 @@ services:
deploy:
labels:
backupbot.backup: "true"
backupbot.backup.pre-hook: "mkdir -p /tmp/backup/ && PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /tmp/backup/backup.sql"
backupbot.backup.post-hook: "rm -rf /tmp/backup"
backupbot.backup.path: "/tmp/backup/"
backupbot.backup.pre-hook: "PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /var/lib/postgresql/data/backup.sql"
backupbot.backup.post-hook: "rm -f /var/lib/postgresql/data/backup.sql"
backupbot.backup.path: "/var/lib/postgresql/data/backup.sql"
backupbot.restore: "true"
backupbot.restore.post-hook: "sh -c 'psql -U $${POSTGRES_USER} -d $${POSTGRES_DB} < /var/lib/postgresql/data/backup.sql && rm -f /var/lib/postgresql/data/backup.sql'"
volumes:
postgres:
codimd_uploads:
@ -90,6 +97,10 @@ networks:
external: true
internal:
configs:
config_json:
name: ${STACK_NAME}_config_${ENTRYPOINT_CONF_VERSION}
file: config.json.tmpl
template_driver: golang
entrypoint_conf:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_CONF_VERSION}
file: entrypoint.sh.tmpl

7
config.json.tmpl Normal file
View File

@ -0,0 +1,7 @@
{
{{ if (env "DOCUMENT_MAX_LENGTH") }}
"production": {
"documentMaxLength": {{ env "DOCUMENT_MAX_LENGTH" }}
}
{{ end }}
}

View File

@ -30,6 +30,7 @@ main() {
set -eu
load_vars
mkdir "/hedgedoc/.npm" && chown -R 10000:65534 "/hedgedoc/.npm" && chmod "u+rwx" "/hedgedoc/.npm"
}
main
@ -40,6 +41,7 @@ export CMD_DB_URL=postgres://$CMD_DB_USER:$CMD_DB_PASSWORD@$CMD_DB_HOST:5432/$CM
if [ ! "${1-}" == "-e" ]; then
# 3wc: upstream ENTRYPOINT
# https://github.com/hedgedoc/container/blob/master/alpine/Dockerfile
mkdir -p "/hedgedoc/.npm" && chown -R 10000:65534 "/hedgedoc/.npm"
/usr/local/bin/docker-entrypoint.sh npm start
fi

7
release/1.0.0+1.9 Normal file
View File

@ -0,0 +1,7 @@
WARNING WARNING WARNING 🚨
This release includes a major Postgres database upgrade, but does not yet include tools to automatically upgrade from older Postgres releases.
PLEASE DO NOT UPGRADE EXISTING INSTANCES TO THIS VERSION.
This should be fixed soon.