generated from coop-cloud/example
Compare commits
24 Commits
1.1.0+1.21
...
main
Author | SHA1 | Date |
---|---|---|
3wc | 4653c0ea66 | |
trav | 05ed929274 | |
3wc | 3d74c22248 | |
3wc | 56d7a64a1b | |
3wordchant | d2308332e4 | |
3wc | 697fe25259 | |
3wc | bad32dd353 | |
3wc | f25c45c5c6 | |
Mayel de Borniol | 6563cfc7e6 | |
3wc | bb9945b38d | |
3wc | c50f5397bf | |
3wc | 2a3021744d | |
3wc | a68a31b45c | |
3wc | 977a81d493 | |
3wc | ba0f1986a0 | |
3wc | 02d0a39db4 | |
3wc | c7d557cc6c | |
3wc | c8ffbe96fe | |
3wc | 29041d2c81 | |
3wc | 232a953788 | |
3wc | 2158fa1fc4 | |
3wc | b8dec9d61a | |
3wc | 8550b91477 | |
decentral1se | 888fa11631 |
22
.drone.yml
22
.drone.yml
|
@ -3,27 +3,37 @@ 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: custom_html
|
||||
purge: true
|
||||
networks:
|
||||
- proxy
|
||||
deploy_key:
|
||||
from_secret: drone_ssh_swarm_test
|
||||
environment:
|
||||
DOMAIN: custom-html.swarm-test.autonomic.zone
|
||||
STACK_NAME: custom_html
|
||||
LETS_ENCRYPT_ENV: production
|
||||
NGINX_DEFAULT_CONF_VERSION: v1
|
||||
ENTRYPOINT_CONF_VERSION: v1
|
||||
trigger:
|
||||
branch:
|
||||
- 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 custom-html 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
|
||||
|
|
19
.env.sample
19
.env.sample
|
@ -4,3 +4,22 @@ DOMAIN=custom-html.example.com
|
|||
## Domain aliases
|
||||
#EXTRA_DOMAINS=', `www.custom-html.example.com`'
|
||||
LETS_ENCRYPT_ENV=production
|
||||
|
||||
COMPOSE_FILE="compose.yml"
|
||||
|
||||
# Single Sign On via Traefik "file provider"
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.sso.yml"
|
||||
|
||||
# Git-pull regularly
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.git-pull.yml"
|
||||
#GIT_REPO_URL="https://git.coopcloud.tech/dalmationer/hexbomb.gay"
|
||||
#CRON_SCHEDULE="*/1 * * * *"
|
||||
|
||||
# Optionally redirect the entire domain or a sub-path:
|
||||
# path under which you want to redirect all URLs (with trailing slash):
|
||||
#REDIRECT_FROM_PATH=/
|
||||
# full URL of target domain (and optionally path) with trailing slash:
|
||||
#REDIRECT_TO_URL=https://coopcloud.tech/
|
||||
# temporary or permanent redirect? (uncomment one)
|
||||
#REDIRECT_TYPE=redirect
|
||||
#REDIRECT_TYPE=permanent
|
||||
|
|
16
README.md
16
README.md
|
@ -1,15 +1,17 @@
|
|||
# Custom HTML
|
||||
|
||||
[![Build Status](https://build.coopcloud.tech/api/badges/coop-cloud/custom-html/status.svg)](https://build.coopcloud.tech/coop-cloud/custom-html)
|
||||
|
||||
Custom HTML website, served using Nginx.
|
||||
|
||||
<!-- metadata -->
|
||||
* **Category**: Apps
|
||||
* **Status**: ❷💛
|
||||
* **Image**: [`nginx`](https://hub.docker.com/_/nginx), ❶💚, upstream
|
||||
* **Category**: Development
|
||||
* **Status**: 2, beta
|
||||
* **Image**: [`nginx`](https://hub.docker.com/_/nginx), 4, upstream
|
||||
* **Healthcheck**: No
|
||||
* **Backups**: No
|
||||
* **Email**: N/A
|
||||
* **Tests**: ❷💛
|
||||
* **Tests**: 2
|
||||
* **SSO**: No
|
||||
<!-- endmetadata -->
|
||||
|
||||
|
@ -18,12 +20,12 @@ Custom HTML website, served using Nginx.
|
|||
1. Set up Docker Swarm and [`abra`]
|
||||
2. Deploy [`coop-cloud/traefik`]
|
||||
3. `abra app new custom-html`
|
||||
4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to
|
||||
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. Copy your files to the container, using something like
|
||||
```
|
||||
abra app YOURAPPDOMAIN cp index.html app:/usr/share/nginx/html
|
||||
abra app cp YOURAPPDOMAIN index.html app:/usr/share/nginx/html
|
||||
```
|
||||
|
||||
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
|
||||
|
|
3
abra.sh
3
abra.sh
|
@ -1 +1,2 @@
|
|||
export NGINX_DEFAULT_CONF_VERSION=v1
|
||||
export NGINX_DEFAULT_CONF_VERSION=v5
|
||||
export ENTRYPOINT_CONF_VERSION=v3
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
git:
|
||||
environment:
|
||||
- GIT_REPO_URL
|
||||
image: alpine/git:v2.43.0
|
||||
entrypoint: /docker-entrypoint.sh
|
||||
volumes:
|
||||
- content:/git
|
||||
configs:
|
||||
- source: entrypoint_conf
|
||||
target: /docker-entrypoint.sh
|
||||
mode: 0555
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 0
|
||||
labels:
|
||||
- "swarm.cronjob.enable=true"
|
||||
- "swarm.cronjob.schedule=${CRON_SCHEDULE:-*/5 * * * *}"
|
||||
restart_policy:
|
||||
condition: none
|
||||
|
||||
configs:
|
||||
entrypoint_conf:
|
||||
name: ${STACK_NAME}_entrypoint_conf_${ENTRYPOINT_CONF_VERSION}
|
||||
file: entrypoint.git-pull.sh
|
|
@ -0,0 +1,8 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
app:
|
||||
environment:
|
||||
- TFA_MIDDLEWARE_NAME
|
||||
deploy:
|
||||
labels:
|
||||
- "traefik.http.routers.${STACK_NAME}.middlewares=${TFA_MIDDLEWARE_NAME}@file"
|
14
compose.yml
14
compose.yml
|
@ -3,7 +3,7 @@ version: "3.8"
|
|||
|
||||
services:
|
||||
app:
|
||||
image: nginx:1.21.3
|
||||
image: nginx:1.26.0
|
||||
networks:
|
||||
- proxy
|
||||
deploy:
|
||||
|
@ -19,7 +19,14 @@ 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=1.1.0+1.21.3"
|
||||
- "coop-cloud.${STACK_NAME}.version=1.6.0+1.26.0"
|
||||
- "backupbot.backup=true"
|
||||
- "backupbot.backup.path=/usr/share/nginx/html"
|
||||
environment:
|
||||
- DEFAULT_CONF_FILE=/etc/nginx/conf.d/default.conf
|
||||
- REDIRECT_FROM_PATH
|
||||
- REDIRECT_TO_URL
|
||||
- REDIRECT_TYPE
|
||||
volumes:
|
||||
- content:/usr/share/nginx/html
|
||||
configs:
|
||||
|
@ -38,7 +45,8 @@ volumes:
|
|||
configs:
|
||||
nginx_default_conf:
|
||||
name: ${STACK_NAME}_nginx_default_conf_${NGINX_DEFAULT_CONF_VERSION}
|
||||
file: default.conf
|
||||
file: default.conf.tmpl
|
||||
template_driver: golang
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
|
|
|
@ -10,10 +10,18 @@ server {
|
|||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ $uri.html;
|
||||
|
||||
{{ if env "REDIRECT_TO_URL" }}
|
||||
rewrite ^{{ env "REDIRECT_FROM_PATH" }}(.*)$ {{ env "REDIRECT_TO_URL" }}$1 {{ env "REDIRECT_TYPE" }};
|
||||
{{ end }}
|
||||
|
||||
try_files $uri $uri/ $uri.html =404;
|
||||
}
|
||||
|
||||
#error_page 404 /404.html;
|
||||
error_page 404 /404.html;
|
||||
location = /404.html {
|
||||
root /usr/share/nginx/html;
|
||||
}
|
||||
|
||||
# redirect server error pages to the static page /50x.html
|
||||
#
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ ! -d /git/.git ]; then
|
||||
echo "No repo found, emptying /git/ directory"
|
||||
rm -r /git/*
|
||||
echo "Cloning $GIT_REPO_URL into /git"
|
||||
git clone "$GIT_REPO_URL" /git
|
||||
else
|
||||
echo "Updating /git"
|
||||
git pull
|
||||
fi
|
Loading…
Reference in New Issue