diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..ade01cc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +.forgejo +*compose.yml +Dockerfile +.git* +Jenkinsfile +LICENSE +README.md diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..68a5b06 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +DEBUG_MODE=False diff --git a/.forgejo/workflows/update.yaml b/.forgejo/workflows/update.yaml deleted file mode 100644 index 981d93d..0000000 --- a/.forgejo/workflows/update.yaml +++ /dev/null @@ -1,7 +0,0 @@ -on: [push] -jobs: - update: - runs-on: self-hosted - steps: - - run: sudo git -C /opt/Adrianux.net/ pull - - run: sudo systemctl restart adrianux \ No newline at end of file diff --git a/.gitignore b/.gitignore index 033df5f..03741ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ -.venv +.venv* +.env __pycache__ +*theia-workspace \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..951996a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine:latest +WORKDIR /opt/ + +ENV DEBUG_MODE=False + +COPY . . + +RUN apk add --no-cache python3 py3-flask py3-waitress + +EXPOSE 8080 + +HEALTHCHECK --interval=5m CMD wget --delete-after http://localhost:8080 + +CMD [ "waitress-serve", "--listen=0.0.0.0:8080", "app:app" ] diff --git a/README.md b/README.md index a741db1..7cf7903 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,62 @@ # Installation - ## Setting up the environment 1. Create a virtual environment: -```bash + +```sh python3 -m venv .venv ``` 2. Activate the virtual environment: -```bash + +```sh . .venv/bin/activate ``` 3. Install dependencies: -```bash + +```sh pip install requirements.txt ``` -```systemd -# /etc/systemd/system/adrianux.service -[Unit] -Description=WSGI app -After=network.target +4. Set the environment variables: -[Service] -Type=simple -User=adrianux -WorkingDirectory=/opt/Adrianux.net -ExecStart=/opt/Adrianux.net/.venv/bin/waitress-serve --listen=127.0.0.1:8080 app:app -Restart=always - -[Install] -WantedBy=multi-user.target +```sh +export DEBUGMODE=False ``` +Or source the .env file: + +```sh +cp .env.example .env # change the variables to suit your environment as needed +``` + +```sh +. .env +``` + +5. Run the app: + +```sh +waitress-serve --listen=0.0.0.0:8080 app:app +``` + +# Docker + +## Building the container + +```sh +docker build -t adrianux:latest . +``` + +## Running the container + +```sh +docker run adrianux:latest +``` +# Docker Compose + +```sh +docker compose up adrianux +``` diff --git a/app.py b/app.py index 3aa37fb..aa9dfa6 100755 --- a/app.py +++ b/app.py @@ -1,39 +1,22 @@ #!/usr/bin/env python3 -from flask import Flask, render_template, redirect, url_for -import requests +from flask import Flask, render_template, url_for +import os + app = Flask(__name__) @app.route("/imprint") def root(): - return render_template("imprint.html") + return render_template("imprint.j2") @app.route("/about") def about(): - return render_template("about.html") + return render_template("about.j2") @app.route("/") def homepage(): - return render_template("homepage.html") + return render_template("homepage.j2") -@app.route("/monitoring") -def monitoring(): - git_status = get_status("https://git.adrianux.net") - website_status = get_status("https://adrianux.net") - return render_template("monitoring.html", git_status = git_status, website_status = website_status ) - -def get_status_code(link): - requested_site = requests.get(link) - return requested_site.status_code - -def get_status(link): - match get_status_code(link): - case 200: - return "ONLINE" - case 500: - return "ERROR" - case _: - return "OFFLINE" if __name__ == "__main__": - app.run(debug=False) + app.run(debug=os.environ['DEBUG_MODE']) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..7107bd6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +--- +services: + container_name: "adrianux" + image: "git.adrianux.net/ahoemann/adrianux.net:1.2.0" + env_file: .env + ports: + - "127.0.0.1:8080:8080" diff --git a/templates/about.html b/templates/about.j2 similarity index 93% rename from templates/about.html rename to templates/about.j2 index 6184755..16e4c30 100644 --- a/templates/about.html +++ b/templates/about.j2 @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "base.j2" %} {% block title %}About{% endblock %} {% block head %} {{ super() }} @@ -10,7 +10,7 @@

Languages: German, English

Programming languages: Python, Bash, POSIX Shell, Powershell

Markup languages: HTML, MD

-

Structure languages: JSON, XML, YAML, TOML

+

Structure languages: JSON, XML, YAML, TOML, Jinja2

Query languages: SQL(MariaDB, SQLite3)

Services managed: SSH, DNS, DHCP, AD, PF, UFW, NF-Tables, RDP(XRDP, Microsoft RDP), Webserver(Apache24, Nginx, OpenBSD-httpd, diff --git a/templates/base.html b/templates/base.j2 similarity index 73% rename from templates/base.html rename to templates/base.j2 index e406f79..e3f8a47 100644 --- a/templates/base.html +++ b/templates/base.j2 @@ -1,5 +1,5 @@ - + {% block head %} @@ -14,8 +14,9 @@

  • Homepage
  • Imprint
  • About
  • -
  • Monitoring
  • -
  • Git
  • +
  • Monitoring
  • +
  • Git
  • +
  • Bin
  • @@ -25,8 +26,8 @@ diff --git a/templates/homepage.html b/templates/homepage.j2 similarity index 74% rename from templates/homepage.html rename to templates/homepage.j2 index 72ce93c..c40b0eb 100644 --- a/templates/homepage.html +++ b/templates/homepage.j2 @@ -1,9 +1,9 @@ -{% extends "base.html" %} +{% extends "base.j2" %} {% block title %}Homepage{% endblock %} {% block head %} {{ super() }} {% endblock %} {% block content %} -

    This is Adrian's homepage, checkout his running services and their state here

    +

    This is Adrian's homepage, checkout his running services and their state here

    Yes, Adrian is refering to himself in the third person.

    {% endblock %} diff --git a/templates/imprint.html b/templates/imprint.j2 similarity index 91% rename from templates/imprint.html rename to templates/imprint.j2 index 59c6e38..011a5f2 100644 --- a/templates/imprint.html +++ b/templates/imprint.j2 @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "base.j2" %} {% block title %}Imprint{% endblock %} {% block head %} {{ super() }} diff --git a/templates/monitoring.html b/templates/monitoring.html deleted file mode 100644 index c41ec0b..0000000 --- a/templates/monitoring.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "base.html" %} -{% block title %}Monitoring{% endblock %} -{% block head %} - {{ super() }} -{% endblock %} -{% block content %} -

    Git status: {{ git_status }}

    -

    Website status: {{ website_status }}

    -{% endblock %}