Skip to content

Commit f9f0b50

Browse files
authored
Merge pull request #24 from inowas/dev
Merge dev into main
2 parents 24dcd13 + 730a9d0 commit f9f0b50

File tree

143 files changed

+314
-167
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+314
-167
lines changed

.gitlab-ci.yml

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,44 @@
1+
variables:
2+
SCHEMA_IMAGE: inowas/schema
3+
SCHEMA_PATH: /srv/docker/schema.inowas.com
4+
15
stages:
6+
- publish
27
- deploy
38

9+
image: docker:20.10.16
10+
11+
services:
12+
- docker:20.10.16-dind
13+
14+
publish:
15+
stage: publish
16+
before_script:
17+
- docker info
18+
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_TOKEN $CI_REGISTRY
19+
script:
20+
- docker build --tag $SCHEMA_IMAGE:$CI_COMMIT_SHA --tag $SCHEMA_IMAGE:latest --file src/docker/Dockerfile .
21+
- docker push $SCHEMA_IMAGE:$CI_COMMIT_SHA
22+
- docker push $SCHEMA_IMAGE:latest
23+
only:
24+
- main
25+
426
deploy:
27+
image: ubuntu:22.04
528
stage: deploy
6-
image: ubuntu:latest
7-
829
before_script:
930
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
1031
- mkdir -p ~/.ssh
1132
- eval $(ssh-agent -s)
1233
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
13-
- ssh-add <(echo "$PRIVATE_KEY")
14-
- apt-get install rsync -y
34+
- ssh-add <(echo "$SSH_PRIVATE_KEY")
1535
script:
16-
- ssh -p22 $SSH_CREDENTIALS_PRODUCTION_SERVER "mkdir -p $PRODUCTION_PATH.tmp/"
17-
- rsync -rav --exclude=.git --exclude=.gitlab-ci.yml -e ssh ./ $SSH_CREDENTIALS_PRODUCTION_SERVER:/$PRODUCTION_PATH.tmp/
18-
- ssh -p22 $SSH_CREDENTIALS_PRODUCTION_SERVER "mv $PRODUCTION_PATH $PRODUCTION_PATH.old"
19-
- ssh -p22 $SSH_CREDENTIALS_PRODUCTION_SERVER "mv $PRODUCTION_PATH.tmp $PRODUCTION_PATH"
20-
- ssh -p22 $SSH_CREDENTIALS_PRODUCTION_SERVER "rm -rf $PRODUCTION_PATH.old"
36+
- ssh -p22 $SSH_CREDENTIALS "cd $SCHEMA_PATH && docker compose down"
37+
- scp -P22 ./infrastructure/schema/docker-compose.yml $SSH_CREDENTIALS:/$SCHEMA_PATH/docker-compose.yml
38+
- ssh -p22 $SSH_CREDENTIALS "cd $SCHEMA_PATH && docker compose pull"
39+
- ssh -p22 $SSH_CREDENTIALS "cd $SCHEMA_PATH && docker compose up -d --force-recreate"
40+
environment:
41+
name: development
42+
url: https://schema.inowas.com
2143
only:
22-
- master
44+
- main

import/boundary.json

Lines changed: 0 additions & 32 deletions
This file was deleted.

infrastructure/schema/.env.dist

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
COMPOSE_PROJECT_NAME=morpheus_prod
2+
DOMAIN=example.com
3+
FRONTEND_HOST=${DOMAIN}
4+
5+
# Certificate resolver
6+
# possible values:
7+
# - letsencrypt: use Let's Encrypt to generate certificates
8+
# - tud-resolver: use the resolver provided by TU-Dresden
9+
TRAEFIK_CERT_RESOLVER=letsencrypt
10+
TRAEFIK_NETWORK=traefik
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
version: "3.8"
2+
services:
3+
frontend:
4+
image: inowas/schema:latest
5+
labels:
6+
- "traefik.enable=true"
7+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend-http.entrypoints=web"
8+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend-http.rule=Host(`${FRONTEND_HOST}`)"
9+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend-http.middlewares=redirect-to-https"
10+
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
11+
- "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
12+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend.entrypoints=websecure"
13+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend.rule=Host(`${FRONTEND_HOST}`)"
14+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend.tls=true"
15+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend.tls.certresolver=${TRAEFIK_CERT_RESOLVER}"
16+
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-frontend.service=${COMPOSE_PROJECT_NAME}-frontend"
17+
- "traefik.http.services.${COMPOSE_PROJECT_NAME}-frontend.loadbalancer.server.port=8080"
18+
- "traefik.docker.network=${TRAEFIK_NETWORK}"
19+
networks:
20+
- traefik
21+
restart: always
22+
read_only: true
23+
tmpfs:
24+
- /var/run:mode=777,size=100m
25+
- /var/cache/nginx:mode=777,size=100m
26+
27+
networks:
28+
traefik:
29+
name: ${TRAEFIK_NETWORK}
30+
external: true

infrastructure/traefik/.env

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
TRAEFIK_NETWORK=traefik
2+
TRAEFIK_ACME_EMAIL=[email protected]
3+
TRAEFIK_ACME_LETSENCRYPT_CASERVER=https://acme-v02.api.letsencrypt.org/directory
4+
TRAEFIK_ACME_TUD_CASERVER=https://acme.sectigo.com/v2/OV
5+
TRAEFIK_ACME_TUD_EAB_KID=titugjUE8MISdpQk1i_cPw
6+
TRAEFIK_ACME_TUD_EAB_HMAC_ENCODED=SZwKYNiJpDEhhVrh-METQBEhF8s9bUx8S2Nzd6KmbqnOiTTZyXRZIinxxXyowpaaFORmWLZZk7e8ro6IShsKeg

infrastructure/traefik/.env.dist

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
TRAEFIK_NETWORK=traefik
2+
3+
TRAEFIK_ACME_EMAIL=...
4+
TRAEFIK_ACME_LETSENCRYPT_CASERVER=https://acme-v02.api.letsencrypt.org/directory
5+
TRAEFIK_ACME_TUD_CASERVER=...
6+
TRAEFIK_ACME_TUD_EAB_KID=...
7+
TRAEFIK_ACME_TUD_EAB_HMAC_ENCODED=...
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
version: "3.8"
2+
services:
3+
traefik:
4+
image: traefik:v2.10
5+
command:
6+
- "--log.level=INFO"
7+
- "--log.filePath=/var/logs/traefik/traefik.log"
8+
- "--accesslog=true"
9+
- "--api=false"
10+
- "--api.dashboard=false"
11+
- "--api.insecure=false"
12+
- "--entryPoints.web.address=:80"
13+
- "--entryPoints.websecure.address=:443"
14+
- "--global.checkNewVersion=true"
15+
- "--global.sendAnonymousUsage=false"
16+
- "--providers.docker=true"
17+
- "--providers.docker.exposedByDefault=false"
18+
# Let's Encrypt
19+
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
20+
- "--certificatesresolvers.letsencrypt.acme.caserver=${TRAEFIK_ACME_LETSENCRYPT_CASERVER}"
21+
- "--certificatesresolvers.letsencrypt.acme.email=${TRAEFIK_ACME_EMAIL}"
22+
- "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme_letsencrypt.json"
23+
# TU-Dresden CA
24+
#- "--certificatesresolvers.tud-resolver.acme.tlschallenge=true"
25+
#- "--certificatesresolvers.tud-resolver.acme.caserver=${TRAEFIK_ACME_TUD_CASERVER}"
26+
#- "--certificatesresolvers.tud-resolver.acme.email=${TRAEFIK_ACME_EMAIL}"
27+
#- "--certificatesresolvers.tud-resolver.acme.eab.kid=${TRAEFIK_ACME_TUD_EAB_KID}"
28+
#- "--certificatesresolvers.tud-resolver.acme.eab.hmacencoded=${TRAEFIK_ACME_TUD_EAB_HMAC_ENCODED}"
29+
#- "--certificatesresolvers.tud-resolver.acme.storage=/etc/traefik/acme/acme_tud.json"
30+
volumes:
31+
- /var/run/docker.sock:/var/run/docker.sock
32+
- ./acme:/etc/traefik/acme
33+
- ./logs:/var/logs/traefik
34+
ports:
35+
- "80:80"
36+
- "443:443"
37+
restart: always
38+
networks:
39+
- traefik
40+
read_only: true
41+
networks:
42+
traefik:
43+
name: ${TRAEFIK_NETWORK}
44+
external: true

modflow/boundary/boundary.json

Lines changed: 0 additions & 15 deletions
This file was deleted.

modflow/boundary/constantHeadBoundary.json

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/docker/Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM nginx:1.25.2-alpine
2+
COPY src/docker/nginx/nginx.conf /etc/nginx/conf.d/default.conf
3+
RUN rm -rf /usr/share/nginx/html
4+
COPY src/public /usr/share/nginx/html
5+
RUN touch /var/run/nginx.pid
6+
RUN chown -R nginx:nginx /var/run/nginx.pid /usr/share/nginx/html /var/cache/nginx /var/log/nginx /etc/nginx/conf.d
7+
USER nginx
8+
EXPOSE 8080
9+
CMD ["nginx", "-g", "daemon off;"]

0 commit comments

Comments
 (0)