diff --git a/README.md b/README.md index c1c9dd7..b31c6c2 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Navigate to `http://localhost:9000` in your browser. I'm working on new quadlets every day. This is a list of all of the containers that I intend to add to this repository. It is still growing, and I welcome -[pull requests](https://github.com/redbeardymcgee/podbox/pulls). +[pull requests](https://git.mcgee.red/redbeardymcgee/podbox/pulls). - [x] [Actual](https://actualbudget.github.io/docs/) - [x] [AdGuard](https://adguard.com) @@ -226,6 +226,7 @@ that I intend to add to this repository. It is still growing, and I welcome - [x] [Snowflake](https://snowflake.torproject.org/) - [ ] [solidtime](https://docs.solidtime.io/self-hosting/intro) - [x] [Sonarr](https://sonarr.tv) +- [x] [Speedtest Tracker](https://speedtest-tracker.dev) - [x] [Stirling PDF](https://stirlingpdf.io) - [x] [syslog-ng](https://syslog-ng.github.io/) - [x] [Tandoor](https://github.com/TandoorRecipes/recipes) diff --git a/quadlets/penpot/penpot-backend.container b/quadlets/penpot/penpot-backend.container new file mode 100644 index 0000000..aa00247 --- /dev/null +++ b/quadlets/penpot/penpot-backend.container @@ -0,0 +1,27 @@ +[Unit] +Description=Penpot backend +WantedBy=penpot.service +Requires=penpot-postgres.service +Requires=penpot-redis.service +After=penpot-postgres.service +After=penpot-redis.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/penpotapp/backend +ContainerName=penpot-backend +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-backend + +Volume=penpot-assets:/opt/data/assets + +EnvironmentFile=penpot-backend.env +EnvironmentFile=penpot.env diff --git a/quadlets/penpot/penpot-backend.env b/quadlets/penpot/penpot-backend.env new file mode 100644 index 0000000..b91e566 --- /dev/null +++ b/quadlets/penpot/penpot-backend.env @@ -0,0 +1,68 @@ +## Penpot SECRET KEY. It serves as a master key from which other keys for subsystems +## (eg http sessions, or invitations) are derived. +## +## If you leave it commented, all created sessions and invitations will +## become invalid on container restart. +## +## If you going to uncomment this, we recommend to use a trully randomly generated +## 512 bits base64 encoded string here. You can generate one with: +## +## python3 -c "import secrets; print(secrets.token_urlsafe(64))" + +# PENPOT_SECRET_KEY=my-insecure-key + +## The PREPL host. Mainly used for external programatic access to penpot backend +## (example=admin). By default it will listen on `localhost` but if you are going to use +## the `admin`, you will need to uncomment this and set the host to `0.0.0.0`. + +PENPOT_PREPL_HOST=0.0.0.0 + +## Database connection parameters. Don't touch them unless you are using custom +## postgresql connection parameters. + +PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot +PENPOT_DATABASE_USERNAME=penpot +PENPOT_DATABASE_PASSWORD=penpot + +## Redis is used for the websockets notifications. Don't touch unless the redis +## container has different parameters or different name. + +PENPOT_REDIS_URI=redis://penpot-redis/0 + +## Default configuration for assets storage=using filesystem based with all files +## stored in a docker volume. + +PENPOT_ASSETS_STORAGE_BACKEND=assets-fs +PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets + +## Also can be configured to to use a S3 compatible storage +## service like MiniIO. Look below for minio service setup. + +# AWS_ACCESS_KEY_ID= +# AWS_SECRET_ACCESS_KEY= +# PENPOT_ASSETS_STORAGE_BACKEND=assets-s3 +# PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://penpot-minio:9000 +# PENPOT_STORAGE_ASSETS_S3_BUCKET= + +## Telemetry. When enabled, a periodical process will send anonymous data about this +## instance. Telemetry data will enable us to learn how the application is used, +## based on real scenarios. If you want to help us, please leave it enabled. You can +## audit what data we send with the code available on github. + +PENPOT_TELEMETRY_ENABLED=true +PENPOT_TELEMETRY_REFERER=compose + +## Example SMTP/Email configuration. By default, emails are sent to the mailcatch +## service, but for production usage it is recommended to setup a real SMTP +## provider. Emails are used to confirm user registrations & invitations. Look below +## how the mailcatch service is configured. + +PENPOT_SMTP_DEFAULT_FROM=no-reply@example.com +PENPOT_SMTP_DEFAULT_REPLY_TO=no-reply@example.com +PENPOT_SMTP_HOST=penpot-mailcatch +PENPOT_SMTP_PORT=1025 +PENPOT_SMTP_USERNAME= +PENPOT_SMTP_PASSWORD= +PENPOT_SMTP_TLS=false +PENPOT_SMTP_SSL=false + diff --git a/quadlets/penpot/penpot-exporter.container b/quadlets/penpot/penpot-exporter.container new file mode 100644 index 0000000..3cef38f --- /dev/null +++ b/quadlets/penpot/penpot-exporter.container @@ -0,0 +1,22 @@ +[Unit] +Description=Penpot exporter +Requires=penpot-redis.service +After=penpot-redis.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/penpotapp/exporter +ContainerName=penpot-exporter +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-exporter + +EnvironmentFile=penpot.env +Environment=PENPOT_REDIS_URI=redis://penpot-redis/0 diff --git a/quadlets/penpot/penpot-mailcatch.container b/quadlets/penpot/penpot-mailcatch.container new file mode 100644 index 0000000..cfe8f7c --- /dev/null +++ b/quadlets/penpot/penpot-mailcatch.container @@ -0,0 +1,19 @@ +[Unit] +Description=Penpot mailcatch + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/sj26/mailcatcher +ContainerName=penpot-mailcatcher +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-mailcatcher +PublishPort=1025:1025 +PublishPort=1080:1080 diff --git a/quadlets/penpot/penpot-minio.container b/quadlets/penpot/penpot-minio.container new file mode 100644 index 0000000..09e86df --- /dev/null +++ b/quadlets/penpot/penpot-minio.container @@ -0,0 +1,26 @@ +[Unit] +Description=Penpot MinIO +WantedBy=penpot-backend.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/minio/minio +ContainerName=penpot-minio +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-minio +PublishPort=9000:9000 +PublishPort=9001:9001 + +Volume=penpot-minio:/mnt/data + +Environment=MINIO_ROOT_USER=minioadmin + +Secret=penpot-minio-root-password,type=env,target=MINIO_ROOT_PASSWORD diff --git a/quadlets/penpot/penpot-postgres.container b/quadlets/penpot/penpot-postgres.container new file mode 100644 index 0000000..aa45b7b --- /dev/null +++ b/quadlets/penpot/penpot-postgres.container @@ -0,0 +1,25 @@ +[Unit] +Description=Penpot postgres +WantedBy=penpot-backend.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/postgres:15 +ContainerName=penpot-postgres +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-postgres + +Volume=penpot-postgres:/var/lib/postgresql/data + +Environment=POSTGRES_INITDB_ARGS=--data-checksums +Environment=POSTGRES_DB=penpot +Environment=POSTGRES_USER=penpot +Environment=POSTGRES_PASSWORD=penpot diff --git a/quadlets/penpot/penpot-redis.container b/quadlets/penpot/penpot-redis.container new file mode 100644 index 0000000..d195586 --- /dev/null +++ b/quadlets/penpot/penpot-redis.container @@ -0,0 +1,18 @@ +[Unit] +Description=Penpot redis +WantedBy=penpot-backend.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/redis:7.2 +ContainerName=penpot-redis +AutoUpdate=registry + +Network=penpot.network +HostName=penpot-redis diff --git a/quadlets/penpot/penpot.container b/quadlets/penpot/penpot.container new file mode 100644 index 0000000..2b54c4a --- /dev/null +++ b/quadlets/penpot/penpot.container @@ -0,0 +1,26 @@ +[Unit] +Description=Penpot +Requires=penpot-backend.service +Requires=penpot-exporter.service +After=penpot-backend.service +After=penpot-exporter.service + +[Service] +Restart=on-failure +TimeoutStartSec=900 + +[Install] +WantedBy=default.target + +[Container] +Image=docker.io/penpotapp/frontend +ContainerName=penpot +AutoUpdate=registry + +Network=penpot.network +HostName=penpot +PublishPort=9001:8080 + +Volume=penpot-assets:/opt/data/assets + +EnvironmentFile=penpot.env diff --git a/quadlets/penpot/penpot.env b/quadlets/penpot/penpot.env new file mode 100644 index 0000000..be4964d --- /dev/null +++ b/quadlets/penpot/penpot.env @@ -0,0 +1,4 @@ +PENPOT_FLAGS=disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies +PENPOT_PUBLIC_URI=https://penpot.example.com +PENPOT_HTTP_SERVER_MAX_BODY_SIZE=31457280 +PENPOT_HTTP_SERVER_MAX_MULTIPART_BODY_SIZE=367001600 diff --git a/quadlets/penpot/penpot.network b/quadlets/penpot/penpot.network new file mode 100644 index 0000000..64b8c54 --- /dev/null +++ b/quadlets/penpot/penpot.network @@ -0,0 +1,2 @@ +[Network] + diff --git a/quadlets/penpot/penpot.volume b/quadlets/penpot/penpot.volume new file mode 100644 index 0000000..7396321 --- /dev/null +++ b/quadlets/penpot/penpot.volume @@ -0,0 +1,7 @@ +[Volume] +VolumeName=penpot-postgres +VolumeName=penpot-assets +#VolumeName=penpot-traefik +#VolumeName=penpot-minio + +