2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:45:54 +02:00
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
# Garage
|
|
|
|
|
2023-04-16 23:45:54 +02:00
|
|
|
[](https://cicd.apps.glenux.net/glenux-opencontainers/service-garage)
|
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
## Installation
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
### DNS
|
|
|
|
|
|
|
|
setup the following DNS records
|
|
|
|
|
|
|
|
*.s3.apps.example.com 10800 IN CNAME dokku.host
|
|
|
|
s3.apps.example.com 10800 IN CNAME dokku.host
|
|
|
|
*.pages.apps.example.com 10800 IN CNAME dokku.host
|
|
|
|
pages.apps.example.com 10800 IN CNAME dokku.host
|
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
### Main app
|
|
|
|
|
|
|
|
Create app
|
|
|
|
|
|
|
|
dokku apps:create objstorage
|
|
|
|
|
|
|
|
Setup internal network
|
|
|
|
|
|
|
|
dokku network:create objstorage_net
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku network:set objstorage attach-post-create objstorage_net
|
|
|
|
|
|
|
|
Setup storage
|
|
|
|
|
|
|
|
mkdir -p /var/lib/dokku/data/storage/objstorage/{meta,data}
|
|
|
|
touch /var/lib/dokku/data/storage/objstorage/garage.toml
|
|
|
|
dokku storage:mount objstorage /var/lib/dokku/data/storage/objstorage/garage.toml:/etc/garage.toml
|
|
|
|
dokku storage:mount objstorage /var/lib/dokku/data/storage/objstorage/meta/:/var/lib/garage/meta/
|
|
|
|
dokku storage:mount objstorage /var/lib/dokku/data/storage/objstorage/data/:/var/lib/garage/data/
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Deploy image
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku git:from-image objstorage glenux/service-garage:xxxx
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
Setup proxy
|
|
|
|
|
|
|
|
dokku proxy:ports-clear objstorage
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku proxy:report objstorage
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Restart
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
dokku ps:restart objstorage
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
### Web proxy
|
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
|
|
|
|
Create app
|
|
|
|
|
|
|
|
dokku apps:create objstorage-web
|
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Setup internal network
|
|
|
|
|
|
|
|
dokku network:set objstorage-web attach-post-create objstorage_net
|
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
Setup domain
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku domains:add objstorage-web pages.apps.example.com
|
|
|
|
dokku domains:add objstorage-web *.pages.apps.example.com
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Configure docker options
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku config:set objstorage-web SERVICE_HOST=objstorage.web
|
|
|
|
dokku config:set objstorage-web SERVICE_PORT=3902
|
|
|
|
# dokku config:set objstorage-web PORT=5000
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Deploy image
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku git:from-image objstorage-web dokku/service-proxy:latest
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Setup proxy
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku proxy:ports-clear objstorage-web
|
|
|
|
dokku proxy:ports-set objstorage-web http:80:5000
|
|
|
|
dokku proxy:report objstorage-web
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Setup TLS
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku letsencrypt:set objstorage-web email username@example.com
|
|
|
|
dokku letsencrypt:enable objstorage-web
|
2023-04-16 23:40:54 +02:00
|
|
|
|
|
|
|
Restart
|
|
|
|
|
|
|
|
dokku ps:restart objstorage-web
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
### S3 proxy
|
2023-04-16 21:22:40 +02:00
|
|
|
|
|
|
|
Create app
|
|
|
|
|
|
|
|
dokku apps:create objstorage-s3
|
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Setup internal network
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku network:set objstorage-s3 attach-post-create objstorage_net
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Setup domain
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku domains:add objstorage-s3 pages.apps.example.com
|
|
|
|
dokku domains:add objstorage-s3 *.pages.apps.example.com
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
Configure docker options
|
|
|
|
|
|
|
|
dokku config:set objstorage-s3 SERVICE_HOST=objstorage.web
|
|
|
|
dokku config:set objstorage-s3 SERVICE_PORT=3902
|
|
|
|
# dokku config:set objstorage-s3 PORT=5000
|
|
|
|
|
|
|
|
Deploy image
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku git:from-image objstorage-s3 dokku/service-proxy:latest
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Setup proxy
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku proxy:ports-clear objstorage-s3
|
|
|
|
dokku proxy:ports-set objstorage-s3 http:80:5000
|
|
|
|
dokku proxy:report objstorage-s3
|
2023-04-16 23:40:54 +02:00
|
|
|
|
2023-04-16 21:22:40 +02:00
|
|
|
Setup TLS
|
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
dokku letsencrypt:set objstorage-s3 email username@example.com
|
2023-04-16 21:22:40 +02:00
|
|
|
dokku letsencrypt:enable objstorage-s3
|
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
Restart
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2023-04-16 23:40:54 +02:00
|
|
|
dokku ps:restart objstorage-s3
|
2023-04-16 21:22:40 +02:00
|
|
|
|
2024-01-20 13:32:07 +01:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
## For each new bucket
|
|
|
|
|
|
|
|
dokku domains:add objstorage-s3 BUCKETNAME.s3.apps.example.com
|
|
|
|
dokku letsencrypt:enable objstorage-s3
|
|
|
|
|
|
|
|
dokku domains:add objstorage-web BUCKETNAME.pages.apps.example.com
|
|
|
|
dokku letsencrypt:enable objstorage-web
|
|
|
|
|
|
|
|
alias garage="sudo docker exec -it objstorage.web.1 /garage"
|
|
|
|
garage bucket create BUCKETNAME
|
|
|
|
garage bucket list
|
|
|
|
garage bucket info BUCKETNAME
|
|
|
|
|
|
|
|
garage key create BUCKETNAME-key
|
|
|
|
garage key list
|
|
|
|
garage key info BUCKETNAME-key
|
|
|
|
|
|
|
|
garage bucket allow \
|
|
|
|
--read \
|
|
|
|
--write \
|
|
|
|
--owner \
|
|
|
|
BUCKETNAME \
|
|
|
|
--key BUCKETNAME-key
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## References
|
2024-01-20 13:32:07 +01:00
|
|
|
|
2024-01-23 16:24:44 +01:00
|
|
|
* [Garage: Cookbook](https://garagehq.deuxfleurs.fr/documentation/cookbook/real-world/)
|
|
|
|
* [Dokku: Network Management](https://dokku.com/docs/networking/network/)
|
|
|
|
* [Dokku: Routing to non-Dokku managed apps](https://dokku.com/blog/2021/dokku-0.25.0/#routing-to-non-dokku-managed-apps)
|