mirror of
https://github.com/Cian-H/I-Form_Research_Server_Stack.git
synced 2025-12-23 14:42: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
|
#!/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"):
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
107
stack.yaml
107
stack.yaml
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user