Lint & general cleanup

This commit is contained in:
Cian Hughes
2024-01-10 17:05:07 +00:00
parent 5fb70cae60
commit 465eb89ab8
3 changed files with 63 additions and 68 deletions

12
deploy
View File

@@ -1,12 +1,12 @@
#!/usr/bin/env poetry run python #!/usr/bin/env poetry run python
from typing import Optional
import typer # type: ignore
import subprocess import subprocess
import portainer # type: ignore from typing import Optional
import docker # type: ignore
import docker # type: ignore
import portainer # type: ignore
import tomllib import tomllib
from pathlib import Path import typer # type: ignore
def docker_deploy_core(stack_name: Optional[str] = "core"): 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(), 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"): def docker_deploy_all(username: str, password: str, core_name: Optional[str] = "core", stack_name: Optional[str] = "stack"):

View File

@@ -5,14 +5,12 @@ description = ""
authors = ["Cian Hughes <cian.hughes@dcu.ie>"] authors = ["Cian Hughes <cian.hughes@dcu.ie>"]
readme = "README.md" readme = "README.md"
repository = "https://github.com/Cian-H/I-Form_Research_Server_Stack" repository = "https://github.com/Cian-H/I-Form_Research_Server_Stack"
packages = [ packages = [{ include = "deploy", from = "." }]
{ include = "deploy", from = "." },
]
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.11" python = "^3.11"
typer = "^0.9.0" typer = "^0.9.0"
portainer = {path = "src/portainer_api"} portainer = { path = "src/portainer_api" }
docker = "^7.0.0" docker = "^7.0.0"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]

View File

@@ -1,6 +1,5 @@
version: "3.8" version: "3.8"
services: services:
###~~~~~~ First, we should plan our network management services ~~~~~~### ###~~~~~~ First, we should plan our network management services ~~~~~~###
# Obviously, we should add the portainer agent service for managing swarm resources # Obviously, we should add the portainer agent service for managing swarm resources
@@ -52,15 +51,15 @@ services:
# - traefik_cert # - traefik_cert
# - traefik_key # - traefik_key
whoami: whoami:
image: "containous/whoami" image: "containous/whoami"
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
# - "traefik.http.routers.whoami.entrypoints=web" # - "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.routers.whoami.rule=Host(`whoami.${traefikhost}`)" - "traefik.http.routers.whoami.rule=Host(`whoami.${traefikhost}`)"
- "traefik.http.routers.whoami.tls=true" - "traefik.http.routers.whoami.tls=true"
- "traefik.http.routers.whoami.tls.certresolver=myresolver" - "traefik.http.routers.whoami.tls.certresolver=myresolver"
networks: networks:
- i-form_research_server_stack - i-form_research_server_stack
###~~~~~~ Then, we will need numerous databases for our various services ~~~~~~### ###~~~~~~ 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 # We want neo4j as a graph database that can easily be used by other services
neo4j: neo4j:
@@ -115,23 +114,23 @@ services:
restart_policy: restart_policy:
condition: on-failure condition: on-failure
cap_drop: cap_drop:
- AUDIT_WRITE - AUDIT_WRITE
- MKNOD - MKNOD
- SYS_CHROOT - SYS_CHROOT
- SETFCAP - SETFCAP
- NET_RAW - NET_RAW
cap_add: cap_add:
- SYS_NICE - SYS_NICE
secrets: secrets:
- elabftw_sql_key - elabftw_sql_key
environment: environment:
MYSQL_DATABASE: "elabftw" MYSQL_DATABASE: "elabftw"
MYSQL_USER: "elabftw" MYSQL_USER: "elabftw"
MYSQL_PASSWORD: /run/secrets/elabftw_sql_key MYSQL_PASSWORD: /run/secrets/elabftw_sql_key
MYSQL_RANDOM_ROOT_PASSWORD: 1 MYSQL_RANDOM_ROOT_PASSWORD: 1
TZ: "Europe/Paris" TZ: "Europe/Paris"
volumes: volumes:
- elabftw_sql:/var/lib/mysql - elabftw_sql:/var/lib/mysql
networks: networks:
- i-form_research_server_stack - i-form_research_server_stack
###~~~~~~ Then, we plan our general utility services ~~~~~~### ###~~~~~~ Then, we plan our general utility services ~~~~~~###
@@ -205,43 +204,43 @@ services:
restart_policy: restart_policy:
condition: on-failure condition: on-failure
depends_on: depends_on:
- mysql - mysql
cap_drop: cap_drop:
- ALL - ALL
cap_add: cap_add:
- CHOWN - CHOWN
- SETGID - SETGID
- SETUID - SETUID
- FOWNER - FOWNER
- DAC_OVERRIDE - DAC_OVERRIDE
secrets: secrets:
- elabftw_sql_key - elabftw_sql_key
- elabftw_secret_key - elabftw_secret_key
environment: environment:
SECRET_KEY: /run/secrets/elabftw_secret_key SECRET_KEY: /run/secrets/elabftw_secret_key
DB_HOST: "mysql" DB_HOST: "mysql"
DB_PORT: "3306" DB_PORT: "3306"
DB_NAME: "elabftw" DB_NAME: "elabftw"
DB_USER: "elabftw" DB_USER: "elabftw"
DB_PASSWORD: "/run/secrets/elabftw_sql_key" DB_PASSWORD: "/run/secrets/elabftw_sql_key"
# - DB_PASSWORD=$$DB_PASSWORD # - DB_PASSWORD=$$DB_PASSWORD
# DB_CERT_PATH: "/mysql-cert/cert.pem" # DB_CERT_PATH: "/mysql-cert/cert.pem"
PHP_TIMEZONE: "Europe/Paris" PHP_TIMEZONE: "Europe/Paris"
TZ: "Europe/Paris" TZ: "Europe/Paris"
SERVER_NAME: "I-Form eLabFTW" SERVER_NAME: "I-Form eLabFTW"
SITE_URL: "elab.i-form.ie" SITE_URL: "elab.i-form.ie"
DISABLE_HTTPS: 1 DISABLE_HTTPS: 1
ENABLE_LETSENCRYPT: 0 ENABLE_LETSENCRYPT: 0
ports: ports:
- "443:443" - "443:443"
volumes: volumes:
- elabftw_uploads:/elabftw/uploads - elabftw_uploads:/elabftw/uploads
- elabftw_var:/var/elabftw - elabftw_var:/var/elabftw
- elabftw_etc:/etc/elabftw - elabftw_etc:/etc/elabftw
# if you have enabled letsencrypt, uncomment the line below # if you have enabled letsencrypt, uncomment the line below
# path to the folder with TLS certificate + private key # path to the folder with TLS certificate + private key
# host:container # host:container
#- /etc/letsencrypt:/ssl #- /etc/letsencrypt:/ssl
networks: networks:
- i-form_research_server_stack - i-form_research_server_stack
labels: labels:
@@ -277,7 +276,7 @@ services:
# - "traefik.http.routers.solr.rule=Host(`solr.${traefikhost}`)" # - "traefik.http.routers.solr.rule=Host(`solr.${traefikhost}`)"
# - "traefik.http.services.solr.loadbalancer.server.port=8983" # - "traefik.http.services.solr.loadbalancer.server.port=8983"
# - "traefik.http.routers.solr.tls=true" # - "traefik.http.routers.solr.tls=true"
# - "traefik.http.routers.solr.tls.certresolver=myresolver" # - "traefik.http.routers.solr.tls.certresolver=myresolver"
# networks: # networks:
# - i-form_research_server_stack # - i-form_research_server_stack
@@ -311,7 +310,7 @@ services:
# - traefik.http.services.minio-console.loadbalancer.server.port=9001 # - traefik.http.services.minio-console.loadbalancer.server.port=9001
# networks: # networks:
# - i-form_research_server_stack # - i-form_research_server_stack
# dataverse: # dataverse:
# image: coronawhy/dataverse:5.13.allclouds # image: coronawhy/dataverse:5.13.allclouds
# tty: true # DEBUG # tty: true # DEBUG
@@ -561,4 +560,4 @@ secrets:
elabftw_secret_key: elabftw_secret_key:
external: true external: true
dataverse_postgres_key: dataverse_postgres_key:
external: true external: true