Compare commits
No commits in common. "c9d61cd9fb74544e35df88b6ed82456961f7b2e5" and "2b6885055b7a59033214138c569f89d7c3a9427b" have entirely different histories.
c9d61cd9fb
...
2b6885055b
7 changed files with 16 additions and 89 deletions
|
@ -1,6 +0,0 @@
|
||||||
.forgejo
|
|
||||||
compose.yml
|
|
||||||
*.dockerfile
|
|
||||||
.gitignore
|
|
||||||
LICENSE
|
|
||||||
README.md
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,2 @@
|
||||||
.venv
|
.venv
|
||||||
.env
|
|
||||||
__pycache__
|
__pycache__
|
||||||
|
|
|
@ -13,6 +13,4 @@ RUN apk del git
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
HEALTHCHECK --interval=5m CMD wget --delete-after http://localhost:8080
|
|
||||||
|
|
||||||
CMD [ "/opt/.venv/bin/waitress-serve", "--listen=0.0.0.0:8080", "app:app" ]
|
CMD [ "/opt/.venv/bin/waitress-serve", "--listen=0.0.0.0:8080", "app:app" ]
|
32
README.md
32
README.md
|
@ -1,50 +1,32 @@
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
|
||||||
## Setting up the environment
|
## Setting up the environment
|
||||||
|
|
||||||
1. Create a virtual environment:
|
1. Create a virtual environment:
|
||||||
```sh
|
```bash
|
||||||
python3 -m venv .venv
|
python3 -m venv .venv
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Activate the virtual environment:
|
2. Activate the virtual environment:
|
||||||
```sh
|
```bash
|
||||||
. .venv/bin/activate
|
. .venv/bin/activate
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Install dependencies:
|
3. Install dependencies:
|
||||||
```sh
|
```bash
|
||||||
pip install requirements.txt
|
pip install requirements.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Set the environment variables:
|
|
||||||
```sh
|
|
||||||
export GIT_URL=http://git.adrianux.net
|
|
||||||
export WEBSITE_URL=http://adrianux.net
|
|
||||||
export DEBUGMODE=False
|
|
||||||
```
|
|
||||||
|
|
||||||
5. Run the app:
|
|
||||||
```sh
|
|
||||||
waitress-serve --listen=0.0.0.0:8080 app:app
|
|
||||||
```
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
|
|
||||||
## Building the container
|
## Building the container
|
||||||
|
|
||||||
```sh
|
```
|
||||||
docker build -t adrianux:latest - < latest.dockerfile
|
# <runtime> build -t adrianux:<tag> .
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Running the container
|
## Running the container
|
||||||
|
|
||||||
```sh
|
|
||||||
docker run adrianux:latest
|
|
||||||
```
|
```
|
||||||
# Docker Compose
|
# <runtime> run adrianux:<tag>
|
||||||
|
|
||||||
```sh
|
|
||||||
docker compose up adrianux
|
|
||||||
```
|
```
|
||||||
|
|
32
app.py
32
app.py
|
@ -1,10 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from flask import Flask, render_template, redirect, url_for
|
from flask import Flask, render_template, redirect, url_for
|
||||||
from concurrent.futures import ThreadPoolExecutor
|
|
||||||
import requests
|
import requests
|
||||||
import os
|
import os
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@ -22,18 +19,17 @@ def homepage():
|
||||||
|
|
||||||
@app.route("/monitoring")
|
@app.route("/monitoring")
|
||||||
def monitoring():
|
def monitoring():
|
||||||
global git_status
|
git_url = os.environ['GIT_URL']
|
||||||
global website_status
|
website_url = os.environ['WEBSITE_URL']
|
||||||
executor = ThreadPoolExecutor(2)
|
return render_template("monitoring.html", git_status = get_status(git_url), website_status = get_status(website_url) )
|
||||||
executor.submit(monitor)
|
|
||||||
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):
|
def get_status(link):
|
||||||
requested_site = requests.get(link)
|
|
||||||
status_code = requested_site.status_code
|
|
||||||
try:
|
try:
|
||||||
match status_code:
|
match get_status_code(link):
|
||||||
case 200:
|
case 200:
|
||||||
return "ONLINE"
|
return "ONLINE"
|
||||||
case _:
|
case _:
|
||||||
|
@ -41,16 +37,6 @@ def get_status(link):
|
||||||
except:
|
except:
|
||||||
return "OFFLINE"
|
return "OFFLINE"
|
||||||
|
|
||||||
def monitor():
|
|
||||||
while True:
|
|
||||||
git_status = get_status(os.environ['GIT_URL'])
|
|
||||||
website_status = get_status(os.environ['WEBSITE_URL'])
|
|
||||||
time.sleep(5)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run(debug=os.environ['DEBUG_MODE'])
|
mode = os.environ['DEBUG_MODE']
|
||||||
|
app.run(debug=mode)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
services:
|
|
||||||
build:
|
|
||||||
context: "."
|
|
||||||
dockerfile: "latest.dockerfile"
|
|
||||||
container_name: "adrianux"
|
|
||||||
image: "adrianux:latest"
|
|
||||||
environment:
|
|
||||||
- "GIT_URL=http://git.adrianux.net"
|
|
||||||
- "WEBSITE_URL=http://adrianux.net"
|
|
||||||
- "DEBUG_MODE=False"
|
|
||||||
ports:
|
|
||||||
- "127.0.0.1:8080:8080"
|
|
|
@ -1,19 +0,0 @@
|
||||||
FROM alpine:latest
|
|
||||||
WORKDIR /opt/
|
|
||||||
|
|
||||||
ENV GIT_URL=https://git.adrianux.net
|
|
||||||
ENV WEBSITE_URL=https://adrianux.net
|
|
||||||
ENV DEBUG_MODE=False
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
RUN apk add --no-cache git python3
|
|
||||||
RUN python3 -m venv /opt/.venv
|
|
||||||
RUN /opt/.venv/bin/pip install --no-cache-dir -r requirements.txt
|
|
||||||
RUN apk del git
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
HEALTHCHECK --interval=5m CMD wget --delete-after http://localhost:8080
|
|
||||||
|
|
||||||
CMD [ "/opt/.venv/bin/waitress-serve", "--listen=0.0.0.0:8080", "app:app" ]
|
|
Loading…
Add table
Reference in a new issue