mirror of
https://github.com/Cian-H/I-Form_Research_Server_Stack.git
synced 2025-12-22 22:22:02 +00:00
Lint & general cleanup
This commit is contained in:
12
deploy
12
deploy
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/env poetry run python
|
||||
|
||||
from typing import Optional
|
||||
import typer # type: ignore
|
||||
import subprocess
|
||||
import portainer # type: ignore
|
||||
import docker # type: ignore
|
||||
from typing import Optional
|
||||
|
||||
import docker # type: ignore
|
||||
import portainer # type: ignore
|
||||
import tomllib
|
||||
from pathlib import Path
|
||||
import typer # type: ignore
|
||||
|
||||
|
||||
def docker_deploy_core(stack_name: Optional[str] = "core"):
|
||||
@@ -52,8 +52,6 @@ def docker_deploy_stack(username: str, password: str, stack_name: Optional[str]
|
||||
repository_url=fetch_repository_url(),
|
||||
)
|
||||
)
|
||||
# breakpoint() #! TODO: Implement way of using portainer api to deploy stack
|
||||
# subprocess.run(["docker", "stack", "deploy", "-c", "stack.yaml", stack_name])
|
||||
|
||||
|
||||
def docker_deploy_all(username: str, password: str, core_name: Optional[str] = "core", stack_name: Optional[str] = "stack"):
|
||||
|
||||
@@ -5,14 +5,12 @@ description = ""
|
||||
authors = ["Cian Hughes <cian.hughes@dcu.ie>"]
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/Cian-H/I-Form_Research_Server_Stack"
|
||||
packages = [
|
||||
{ include = "deploy", from = "." },
|
||||
]
|
||||
packages = [{ include = "deploy", from = "." }]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.11"
|
||||
typer = "^0.9.0"
|
||||
portainer = {path = "src/portainer_api"}
|
||||
portainer = { path = "src/portainer_api" }
|
||||
docker = "^7.0.0"
|
||||
|
||||
[tool.poetry.group.dev.dependencies]
|
||||
|
||||
113
stack.yaml
113
stack.yaml
@@ -1,6 +1,5 @@
|
||||
version: "3.8"
|
||||
|
||||
|
||||
services:
|
||||
###~~~~~~ First, we should plan our network management services ~~~~~~###
|
||||
# Obviously, we should add the portainer agent service for managing swarm resources
|
||||
@@ -52,15 +51,15 @@ services:
|
||||
# - traefik_cert
|
||||
# - traefik_key
|
||||
whoami:
|
||||
image: "containous/whoami"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# - "traefik.http.routers.whoami.entrypoints=web"
|
||||
- "traefik.http.routers.whoami.rule=Host(`whoami.${traefikhost}`)"
|
||||
- "traefik.http.routers.whoami.tls=true"
|
||||
- "traefik.http.routers.whoami.tls.certresolver=myresolver"
|
||||
networks:
|
||||
- i-form_research_server_stack
|
||||
image: "containous/whoami"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# - "traefik.http.routers.whoami.entrypoints=web"
|
||||
- "traefik.http.routers.whoami.rule=Host(`whoami.${traefikhost}`)"
|
||||
- "traefik.http.routers.whoami.tls=true"
|
||||
- "traefik.http.routers.whoami.tls.certresolver=myresolver"
|
||||
networks:
|
||||
- i-form_research_server_stack
|
||||
###~~~~~~ Then, we will need numerous databases for our various services ~~~~~~###
|
||||
# We want neo4j as a graph database that can easily be used by other services
|
||||
neo4j:
|
||||
@@ -115,23 +114,23 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
cap_drop:
|
||||
- AUDIT_WRITE
|
||||
- MKNOD
|
||||
- SYS_CHROOT
|
||||
- SETFCAP
|
||||
- NET_RAW
|
||||
- AUDIT_WRITE
|
||||
- MKNOD
|
||||
- SYS_CHROOT
|
||||
- SETFCAP
|
||||
- NET_RAW
|
||||
cap_add:
|
||||
- SYS_NICE
|
||||
- SYS_NICE
|
||||
secrets:
|
||||
- elabftw_sql_key
|
||||
- elabftw_sql_key
|
||||
environment:
|
||||
MYSQL_DATABASE: "elabftw"
|
||||
MYSQL_USER: "elabftw"
|
||||
MYSQL_PASSWORD: /run/secrets/elabftw_sql_key
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: 1
|
||||
TZ: "Europe/Paris"
|
||||
MYSQL_DATABASE: "elabftw"
|
||||
MYSQL_USER: "elabftw"
|
||||
MYSQL_PASSWORD: /run/secrets/elabftw_sql_key
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: 1
|
||||
TZ: "Europe/Paris"
|
||||
volumes:
|
||||
- elabftw_sql:/var/lib/mysql
|
||||
- elabftw_sql:/var/lib/mysql
|
||||
networks:
|
||||
- i-form_research_server_stack
|
||||
###~~~~~~ Then, we plan our general utility services ~~~~~~###
|
||||
@@ -205,43 +204,43 @@ services:
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
depends_on:
|
||||
- mysql
|
||||
- mysql
|
||||
cap_drop:
|
||||
- ALL
|
||||
- ALL
|
||||
cap_add:
|
||||
- CHOWN
|
||||
- SETGID
|
||||
- SETUID
|
||||
- FOWNER
|
||||
- DAC_OVERRIDE
|
||||
- CHOWN
|
||||
- SETGID
|
||||
- SETUID
|
||||
- FOWNER
|
||||
- DAC_OVERRIDE
|
||||
secrets:
|
||||
- elabftw_sql_key
|
||||
- elabftw_secret_key
|
||||
- elabftw_sql_key
|
||||
- elabftw_secret_key
|
||||
environment:
|
||||
SECRET_KEY: /run/secrets/elabftw_secret_key
|
||||
DB_HOST: "mysql"
|
||||
DB_PORT: "3306"
|
||||
DB_NAME: "elabftw"
|
||||
DB_USER: "elabftw"
|
||||
DB_PASSWORD: "/run/secrets/elabftw_sql_key"
|
||||
# - DB_PASSWORD=$$DB_PASSWORD
|
||||
# DB_CERT_PATH: "/mysql-cert/cert.pem"
|
||||
PHP_TIMEZONE: "Europe/Paris"
|
||||
TZ: "Europe/Paris"
|
||||
SERVER_NAME: "I-Form eLabFTW"
|
||||
SITE_URL: "elab.i-form.ie"
|
||||
DISABLE_HTTPS: 1
|
||||
ENABLE_LETSENCRYPT: 0
|
||||
SECRET_KEY: /run/secrets/elabftw_secret_key
|
||||
DB_HOST: "mysql"
|
||||
DB_PORT: "3306"
|
||||
DB_NAME: "elabftw"
|
||||
DB_USER: "elabftw"
|
||||
DB_PASSWORD: "/run/secrets/elabftw_sql_key"
|
||||
# - DB_PASSWORD=$$DB_PASSWORD
|
||||
# DB_CERT_PATH: "/mysql-cert/cert.pem"
|
||||
PHP_TIMEZONE: "Europe/Paris"
|
||||
TZ: "Europe/Paris"
|
||||
SERVER_NAME: "I-Form eLabFTW"
|
||||
SITE_URL: "elab.i-form.ie"
|
||||
DISABLE_HTTPS: 1
|
||||
ENABLE_LETSENCRYPT: 0
|
||||
ports:
|
||||
- "443:443"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- elabftw_uploads:/elabftw/uploads
|
||||
- elabftw_var:/var/elabftw
|
||||
- elabftw_etc:/etc/elabftw
|
||||
# if you have enabled letsencrypt, uncomment the line below
|
||||
# path to the folder with TLS certificate + private key
|
||||
# host:container
|
||||
#- /etc/letsencrypt:/ssl
|
||||
- elabftw_uploads:/elabftw/uploads
|
||||
- elabftw_var:/var/elabftw
|
||||
- elabftw_etc:/etc/elabftw
|
||||
# if you have enabled letsencrypt, uncomment the line below
|
||||
# path to the folder with TLS certificate + private key
|
||||
# host:container
|
||||
#- /etc/letsencrypt:/ssl
|
||||
networks:
|
||||
- i-form_research_server_stack
|
||||
labels:
|
||||
@@ -277,7 +276,7 @@ services:
|
||||
# - "traefik.http.routers.solr.rule=Host(`solr.${traefikhost}`)"
|
||||
# - "traefik.http.services.solr.loadbalancer.server.port=8983"
|
||||
# - "traefik.http.routers.solr.tls=true"
|
||||
# - "traefik.http.routers.solr.tls.certresolver=myresolver"
|
||||
# - "traefik.http.routers.solr.tls.certresolver=myresolver"
|
||||
# networks:
|
||||
# - i-form_research_server_stack
|
||||
|
||||
@@ -311,7 +310,7 @@ services:
|
||||
# - traefik.http.services.minio-console.loadbalancer.server.port=9001
|
||||
# networks:
|
||||
# - i-form_research_server_stack
|
||||
|
||||
|
||||
# dataverse:
|
||||
# image: coronawhy/dataverse:5.13.allclouds
|
||||
# tty: true # DEBUG
|
||||
@@ -561,4 +560,4 @@ secrets:
|
||||
elabftw_secret_key:
|
||||
external: true
|
||||
dataverse_postgres_key:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user