feat: support publishing
This commit is contained in:
parent
e45615b4a6
commit
e4d777fac6
4 changed files with 109 additions and 1 deletions
38
compose.yml
Normal file
38
compose.yml
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: "nginx:stable"
|
||||
configs:
|
||||
- source: abra_conf
|
||||
target: /etc/nginx/conf.d/default.conf
|
||||
- source: abra_recipes_json
|
||||
target: /var/www/recipes/recipes.json
|
||||
volumes:
|
||||
- "public:/var/www/recipes"
|
||||
networks:
|
||||
- proxy
|
||||
deploy:
|
||||
update_config:
|
||||
failure_action: rollback
|
||||
order: start-first
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.recipes.loadbalancer.server.port=80"
|
||||
- "traefik.http.routers.recipes.rule=Host(`apps.coopcloud.tech`, `recipes.coopcloud.tech`)"
|
||||
- "traefik.http.routers.recipes.entrypoints=web-secure"
|
||||
- "traefik.http.routers.recipes.tls.certresolver=production"
|
||||
|
||||
configs:
|
||||
abra_apps_json:
|
||||
file: recipes.json
|
||||
abra_conf:
|
||||
file: nginx.conf
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
public:
|
12
makefile
Normal file
12
makefile
Normal file
|
@ -0,0 +1,12 @@
|
|||
STACK := recipes_coopcloud_tech
|
||||
|
||||
default: deploy
|
||||
|
||||
generate:
|
||||
abra catalogue generate && cp ~/.abra/apps.json recipes.json
|
||||
|
||||
deploy:
|
||||
@DOCKER_CONTEXT=swarm.autonomic.zone docker stack rm $(STACK) && \
|
||||
DOCKER_CONTEXT=swarm.autonomic.zone docker stack deploy -c compose.yml $(STACK)
|
||||
|
||||
.PHONY: generate deploy
|
39
nginx.conf
Normal file
39
nginx.conf
Normal file
|
@ -0,0 +1,39 @@
|
|||
server {
|
||||
listen 80 default_server;
|
||||
server_name apps.coopcloud.tech recipes.coopcloud.tech;
|
||||
|
||||
location / {
|
||||
if ($request_method = 'OPTIONS') {
|
||||
add_header 'Access-Control-Allow-Origin' '*';
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
|
||||
#
|
||||
# Custom headers and headers various browsers *should* be OK with but aren't
|
||||
#
|
||||
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
|
||||
#
|
||||
# Tell client that this pre-flight info is valid for 20 days
|
||||
#
|
||||
add_header 'Access-Control-Max-Age' 1728000;
|
||||
add_header 'Content-Type' 'text/plain; charset=utf-8';
|
||||
add_header 'Content-Length' 0;
|
||||
return 204;
|
||||
}
|
||||
if ($request_method = 'POST') {
|
||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
|
||||
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always;
|
||||
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always;
|
||||
}
|
||||
if ($request_method = 'GET') {
|
||||
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
|
||||
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range' always;
|
||||
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range' always;
|
||||
}
|
||||
|
||||
add_header Content-Type application/json;
|
||||
|
||||
root /var/www/recipes;
|
||||
index recipes.json;
|
||||
}
|
||||
}
|
21
recipes.json
21
recipes.json
|
@ -901,7 +901,26 @@
|
|||
"icon": "https://git.coopcloud.tech/repo-avatars/186-86a30915fd46fce2d7e35709d9373da4",
|
||||
"name": "keyoxide",
|
||||
"repository": "https://git.coopcloud.tech/coop-cloud/keyoxide.git",
|
||||
"versions": [],
|
||||
"versions": [
|
||||
{
|
||||
"1.0.0+2.5.0": {
|
||||
"app": {
|
||||
"digest": "aa23f35",
|
||||
"image": "keyoxide/keyoxide",
|
||||
"tag": "2.5.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"2.0.0+3.0.0": {
|
||||
"app": {
|
||||
"digest": "74e29a7",
|
||||
"image": "keyoxide/keyoxide",
|
||||
"tag": "3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"website": "https://codeberg.org/keyoxide/web"
|
||||
},
|
||||
"kimai": {
|
||||
|
|
Loading…
Reference in a new issue