feat(penpot): init Penpot
This commit is contained in:
parent
b9f9b8d106
commit
58f428285e
12 changed files with 246 additions and 1 deletions
|
@ -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
|
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
|
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] [Actual](https://actualbudget.github.io/docs/)
|
||||||
- [x] [AdGuard](https://adguard.com)
|
- [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/)
|
- [x] [Snowflake](https://snowflake.torproject.org/)
|
||||||
- [ ] [solidtime](https://docs.solidtime.io/self-hosting/intro)
|
- [ ] [solidtime](https://docs.solidtime.io/self-hosting/intro)
|
||||||
- [x] [Sonarr](https://sonarr.tv)
|
- [x] [Sonarr](https://sonarr.tv)
|
||||||
|
- [x] [Speedtest Tracker](https://speedtest-tracker.dev)
|
||||||
- [x] [Stirling PDF](https://stirlingpdf.io)
|
- [x] [Stirling PDF](https://stirlingpdf.io)
|
||||||
- [x] [syslog-ng](https://syslog-ng.github.io/)
|
- [x] [syslog-ng](https://syslog-ng.github.io/)
|
||||||
- [x] [Tandoor](https://github.com/TandoorRecipes/recipes)
|
- [x] [Tandoor](https://github.com/TandoorRecipes/recipes)
|
||||||
|
|
27
quadlets/penpot/penpot-backend.container
Normal file
27
quadlets/penpot/penpot-backend.container
Normal file
|
@ -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
|
68
quadlets/penpot/penpot-backend.env
Normal file
68
quadlets/penpot/penpot-backend.env
Normal file
|
@ -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=<KEY_ID>
|
||||||
|
# AWS_SECRET_ACCESS_KEY=<ACCESS_KEY>
|
||||||
|
# PENPOT_ASSETS_STORAGE_BACKEND=assets-s3
|
||||||
|
# PENPOT_STORAGE_ASSETS_S3_ENDPOINT=http://penpot-minio:9000
|
||||||
|
# PENPOT_STORAGE_ASSETS_S3_BUCKET=<BUKET_NAME>
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
22
quadlets/penpot/penpot-exporter.container
Normal file
22
quadlets/penpot/penpot-exporter.container
Normal file
|
@ -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
|
19
quadlets/penpot/penpot-mailcatch.container
Normal file
19
quadlets/penpot/penpot-mailcatch.container
Normal file
|
@ -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
|
26
quadlets/penpot/penpot-minio.container
Normal file
26
quadlets/penpot/penpot-minio.container
Normal file
|
@ -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
|
25
quadlets/penpot/penpot-postgres.container
Normal file
25
quadlets/penpot/penpot-postgres.container
Normal file
|
@ -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
|
18
quadlets/penpot/penpot-redis.container
Normal file
18
quadlets/penpot/penpot-redis.container
Normal file
|
@ -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
|
26
quadlets/penpot/penpot.container
Normal file
26
quadlets/penpot/penpot.container
Normal file
|
@ -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
|
4
quadlets/penpot/penpot.env
Normal file
4
quadlets/penpot/penpot.env
Normal file
|
@ -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
|
2
quadlets/penpot/penpot.network
Normal file
2
quadlets/penpot/penpot.network
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[Network]
|
||||||
|
|
7
quadlets/penpot/penpot.volume
Normal file
7
quadlets/penpot/penpot.volume
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[Volume]
|
||||||
|
VolumeName=penpot-postgres
|
||||||
|
VolumeName=penpot-assets
|
||||||
|
#VolumeName=penpot-traefik
|
||||||
|
#VolumeName=penpot-minio
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue