diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e5d51f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.swp +app/static +app/dashboard/migrations/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..88e1c39 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +### DEV ENV ### +FROM python:3.9.16-slim-bullseye AS app_dev + +ARG APP_UID=1000 +ARG APP_GID=1000 + +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +WORKDIR /app/ + +RUN apt update && apt install -y procps less netcat libmariadb-dev-compat libmariadb-dev mariadb-client gcc nginx-light + +COPY ./docker/nginx/updatesdashboard.conf /etc/nginx/sites-enabled/updatesdashboard.conf +RUN rm -f /etc/nginx/sites-enabled/default + +COPY ./docker/scripts/entrypoint.dev.sh /usr/local/bin/entrypoint +RUN chmod +x /usr/local/bin/entrypoint + +RUN addgroup --system gunicorn --gid ${APP_GID} && adduser --uid ${APP_UID} --system --disabled-login --group gunicorn + +RUN pip install --upgrade pip +COPY ./app/requirements.txt . +RUN pip install -r requirements.txt + +COPY ./app/ . +COPY ./app/updatesdashboard/.env.dev ./updatesdashboard/.env + +RUN python /app/manage.py makemigrations +RUN python /app/manage.py makemigrations dashboard + +RUN rm -f ./updatesdashboard/.env + +ENTRYPOINT ["/usr/local/bin/entrypoint","mysql","3306"] diff --git a/README.md b/README.md index 66f8e8b..7523f7a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,14 @@ It runs with Django. The information are daily generated by an ansible playbook, ## Install +### Run with docker + +``` +docker-compose up +``` + +### On-premise + Dependencies in case of Debian 10. ``` apt install python3-venv libmariadb-dev-compat libmariadb-dev mariadb-client python3-dev gcc diff --git a/dashboard/__init__.py b/app/dashboard/__init__.py similarity index 100% rename from dashboard/__init__.py rename to app/dashboard/__init__.py diff --git a/dashboard/admin.py b/app/dashboard/admin.py similarity index 76% rename from dashboard/admin.py rename to app/dashboard/admin.py index 4898622..edda903 100644 --- a/dashboard/admin.py +++ b/app/dashboard/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Os, ServerStatus, Server, PackageStatus, Team +from .models import Os, ServerStatus, Server, PackageStatus class OsAdmin(admin.ModelAdmin): @@ -10,4 +10,3 @@ admin.site.register(Os, OsAdmin) admin.site.register(ServerStatus) admin.site.register(PackageStatus) admin.site.register(Server) -admin.site.register(Team) diff --git a/dashboard/apps.py b/app/dashboard/apps.py similarity index 100% rename from dashboard/apps.py rename to app/dashboard/apps.py diff --git a/dashboard/fixtures/os.yaml b/app/dashboard/fixtures/os.yaml similarity index 100% rename from dashboard/fixtures/os.yaml rename to app/dashboard/fixtures/os.yaml diff --git a/dashboard/forms.py b/app/dashboard/forms.py similarity index 100% rename from dashboard/forms.py rename to app/dashboard/forms.py diff --git a/dashboard/models.py b/app/dashboard/models.py similarity index 84% rename from dashboard/models.py rename to app/dashboard/models.py index 3c4c4f3..5cfc66e 100644 --- a/dashboard/models.py +++ b/app/dashboard/models.py @@ -32,32 +32,9 @@ class Os(models.Model): -class Group(models.Model): - name = models.CharField(max_length=50, unique=True) - full_name = models.CharField(max_length=50, null=True) - - def __str__(self): - if self.full_name: - return self.full_name - else: - return self.name - - - -class Team(models.Model): - name = models.CharField(max_length=20) - color = models.CharField(max_length=20, unique=True) - - def __str__(self): - return self.name - - - class Server(models.Model): hostname = models.CharField(max_length=200, unique=True) os = models.ForeignKey(Os, null=True, related_name="servers", on_delete=models.SET_NULL) - group = models.ForeignKey(Group, null=True, blank=True, related_name="groups", on_delete=models.SET_NULL) - team = models.ForeignKey(Team, null=True, related_name="teams", on_delete=models.SET_NULL) def __str__(self): return self.hostname diff --git a/dashboard/module.py b/app/dashboard/module.py similarity index 100% rename from dashboard/module.py rename to app/dashboard/module.py diff --git a/dashboard/static/css/bootstrap-rtl.css b/app/dashboard/static/css/bootstrap-rtl.css similarity index 100% rename from dashboard/static/css/bootstrap-rtl.css rename to app/dashboard/static/css/bootstrap-rtl.css diff --git a/dashboard/static/css/bootstrap-rtl.min.css b/app/dashboard/static/css/bootstrap-rtl.min.css similarity index 100% rename from dashboard/static/css/bootstrap-rtl.min.css rename to app/dashboard/static/css/bootstrap-rtl.min.css diff --git a/dashboard/static/css/bootstrap.css b/app/dashboard/static/css/bootstrap.css similarity index 100% rename from dashboard/static/css/bootstrap.css rename to app/dashboard/static/css/bootstrap.css diff --git a/dashboard/static/css/bootstrap.min.css b/app/dashboard/static/css/bootstrap.min.css similarity index 100% rename from dashboard/static/css/bootstrap.min.css rename to app/dashboard/static/css/bootstrap.min.css diff --git a/dashboard/static/css/custom.css b/app/dashboard/static/css/custom.css similarity index 100% rename from dashboard/static/css/custom.css rename to app/dashboard/static/css/custom.css diff --git a/dashboard/static/css/datatables.min.css b/app/dashboard/static/css/datatables.min.css similarity index 100% rename from dashboard/static/css/datatables.min.css rename to app/dashboard/static/css/datatables.min.css diff --git a/dashboard/static/css/plugins/morris.css b/app/dashboard/static/css/plugins/morris.css similarity index 100% rename from dashboard/static/css/plugins/morris.css rename to app/dashboard/static/css/plugins/morris.css diff --git a/dashboard/static/css/sb-admin-rtl.css b/app/dashboard/static/css/sb-admin-rtl.css similarity index 100% rename from dashboard/static/css/sb-admin-rtl.css rename to app/dashboard/static/css/sb-admin-rtl.css diff --git a/dashboard/static/css/sb-admin.css b/app/dashboard/static/css/sb-admin.css similarity index 100% rename from dashboard/static/css/sb-admin.css rename to app/dashboard/static/css/sb-admin.css diff --git a/dashboard/static/font-awesome/css/font-awesome.css b/app/dashboard/static/font-awesome/css/font-awesome.css similarity index 100% rename from dashboard/static/font-awesome/css/font-awesome.css rename to app/dashboard/static/font-awesome/css/font-awesome.css diff --git a/dashboard/static/font-awesome/css/font-awesome.min.css b/app/dashboard/static/font-awesome/css/font-awesome.min.css similarity index 100% rename from dashboard/static/font-awesome/css/font-awesome.min.css rename to app/dashboard/static/font-awesome/css/font-awesome.min.css diff --git a/dashboard/static/font-awesome/fonts/FontAwesome.otf b/app/dashboard/static/font-awesome/fonts/FontAwesome.otf similarity index 100% rename from dashboard/static/font-awesome/fonts/FontAwesome.otf rename to app/dashboard/static/font-awesome/fonts/FontAwesome.otf diff --git a/dashboard/static/font-awesome/fonts/fontawesome-webfont.eot b/app/dashboard/static/font-awesome/fonts/fontawesome-webfont.eot similarity index 100% rename from dashboard/static/font-awesome/fonts/fontawesome-webfont.eot rename to app/dashboard/static/font-awesome/fonts/fontawesome-webfont.eot diff --git a/dashboard/static/font-awesome/fonts/fontawesome-webfont.svg b/app/dashboard/static/font-awesome/fonts/fontawesome-webfont.svg similarity index 100% rename from dashboard/static/font-awesome/fonts/fontawesome-webfont.svg rename to app/dashboard/static/font-awesome/fonts/fontawesome-webfont.svg diff --git a/dashboard/static/font-awesome/fonts/fontawesome-webfont.ttf b/app/dashboard/static/font-awesome/fonts/fontawesome-webfont.ttf similarity index 100% rename from dashboard/static/font-awesome/fonts/fontawesome-webfont.ttf rename to app/dashboard/static/font-awesome/fonts/fontawesome-webfont.ttf diff --git a/dashboard/static/font-awesome/fonts/fontawesome-webfont.woff b/app/dashboard/static/font-awesome/fonts/fontawesome-webfont.woff similarity index 100% rename from dashboard/static/font-awesome/fonts/fontawesome-webfont.woff rename to app/dashboard/static/font-awesome/fonts/fontawesome-webfont.woff diff --git a/dashboard/static/font-awesome/less/bordered-pulled.less b/app/dashboard/static/font-awesome/less/bordered-pulled.less similarity index 100% rename from dashboard/static/font-awesome/less/bordered-pulled.less rename to app/dashboard/static/font-awesome/less/bordered-pulled.less diff --git a/dashboard/static/font-awesome/less/core.less b/app/dashboard/static/font-awesome/less/core.less similarity index 100% rename from dashboard/static/font-awesome/less/core.less rename to app/dashboard/static/font-awesome/less/core.less diff --git a/dashboard/static/font-awesome/less/fixed-width.less b/app/dashboard/static/font-awesome/less/fixed-width.less similarity index 100% rename from dashboard/static/font-awesome/less/fixed-width.less rename to app/dashboard/static/font-awesome/less/fixed-width.less diff --git a/dashboard/static/font-awesome/less/font-awesome.less b/app/dashboard/static/font-awesome/less/font-awesome.less similarity index 100% rename from dashboard/static/font-awesome/less/font-awesome.less rename to app/dashboard/static/font-awesome/less/font-awesome.less diff --git a/dashboard/static/font-awesome/less/icons.less b/app/dashboard/static/font-awesome/less/icons.less similarity index 100% rename from dashboard/static/font-awesome/less/icons.less rename to app/dashboard/static/font-awesome/less/icons.less diff --git a/dashboard/static/font-awesome/less/larger.less b/app/dashboard/static/font-awesome/less/larger.less similarity index 100% rename from dashboard/static/font-awesome/less/larger.less rename to app/dashboard/static/font-awesome/less/larger.less diff --git a/dashboard/static/font-awesome/less/list.less b/app/dashboard/static/font-awesome/less/list.less similarity index 100% rename from dashboard/static/font-awesome/less/list.less rename to app/dashboard/static/font-awesome/less/list.less diff --git a/dashboard/static/font-awesome/less/mixins.less b/app/dashboard/static/font-awesome/less/mixins.less similarity index 100% rename from dashboard/static/font-awesome/less/mixins.less rename to app/dashboard/static/font-awesome/less/mixins.less diff --git a/dashboard/static/font-awesome/less/path.less b/app/dashboard/static/font-awesome/less/path.less similarity index 100% rename from dashboard/static/font-awesome/less/path.less rename to app/dashboard/static/font-awesome/less/path.less diff --git a/dashboard/static/font-awesome/less/rotated-flipped.less b/app/dashboard/static/font-awesome/less/rotated-flipped.less similarity index 100% rename from dashboard/static/font-awesome/less/rotated-flipped.less rename to app/dashboard/static/font-awesome/less/rotated-flipped.less diff --git a/dashboard/static/font-awesome/less/spinning.less b/app/dashboard/static/font-awesome/less/spinning.less similarity index 100% rename from dashboard/static/font-awesome/less/spinning.less rename to app/dashboard/static/font-awesome/less/spinning.less diff --git a/dashboard/static/font-awesome/less/stacked.less b/app/dashboard/static/font-awesome/less/stacked.less similarity index 100% rename from dashboard/static/font-awesome/less/stacked.less rename to app/dashboard/static/font-awesome/less/stacked.less diff --git a/dashboard/static/font-awesome/less/variables.less b/app/dashboard/static/font-awesome/less/variables.less similarity index 100% rename from dashboard/static/font-awesome/less/variables.less rename to app/dashboard/static/font-awesome/less/variables.less diff --git a/dashboard/static/font-awesome/scss/_bordered-pulled.scss b/app/dashboard/static/font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_bordered-pulled.scss rename to app/dashboard/static/font-awesome/scss/_bordered-pulled.scss diff --git a/dashboard/static/font-awesome/scss/_core.scss b/app/dashboard/static/font-awesome/scss/_core.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_core.scss rename to app/dashboard/static/font-awesome/scss/_core.scss diff --git a/dashboard/static/font-awesome/scss/_fixed-width.scss b/app/dashboard/static/font-awesome/scss/_fixed-width.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_fixed-width.scss rename to app/dashboard/static/font-awesome/scss/_fixed-width.scss diff --git a/dashboard/static/font-awesome/scss/_icons.scss b/app/dashboard/static/font-awesome/scss/_icons.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_icons.scss rename to app/dashboard/static/font-awesome/scss/_icons.scss diff --git a/dashboard/static/font-awesome/scss/_larger.scss b/app/dashboard/static/font-awesome/scss/_larger.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_larger.scss rename to app/dashboard/static/font-awesome/scss/_larger.scss diff --git a/dashboard/static/font-awesome/scss/_list.scss b/app/dashboard/static/font-awesome/scss/_list.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_list.scss rename to app/dashboard/static/font-awesome/scss/_list.scss diff --git a/dashboard/static/font-awesome/scss/_mixins.scss b/app/dashboard/static/font-awesome/scss/_mixins.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_mixins.scss rename to app/dashboard/static/font-awesome/scss/_mixins.scss diff --git a/dashboard/static/font-awesome/scss/_path.scss b/app/dashboard/static/font-awesome/scss/_path.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_path.scss rename to app/dashboard/static/font-awesome/scss/_path.scss diff --git a/dashboard/static/font-awesome/scss/_rotated-flipped.scss b/app/dashboard/static/font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_rotated-flipped.scss rename to app/dashboard/static/font-awesome/scss/_rotated-flipped.scss diff --git a/dashboard/static/font-awesome/scss/_spinning.scss b/app/dashboard/static/font-awesome/scss/_spinning.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_spinning.scss rename to app/dashboard/static/font-awesome/scss/_spinning.scss diff --git a/dashboard/static/font-awesome/scss/_stacked.scss b/app/dashboard/static/font-awesome/scss/_stacked.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_stacked.scss rename to app/dashboard/static/font-awesome/scss/_stacked.scss diff --git a/dashboard/static/font-awesome/scss/_variables.scss b/app/dashboard/static/font-awesome/scss/_variables.scss similarity index 100% rename from dashboard/static/font-awesome/scss/_variables.scss rename to app/dashboard/static/font-awesome/scss/_variables.scss diff --git a/dashboard/static/font-awesome/scss/font-awesome.scss b/app/dashboard/static/font-awesome/scss/font-awesome.scss similarity index 100% rename from dashboard/static/font-awesome/scss/font-awesome.scss rename to app/dashboard/static/font-awesome/scss/font-awesome.scss diff --git a/dashboard/static/fonts/glyphicons-halflings-regular.eot b/app/dashboard/static/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from dashboard/static/fonts/glyphicons-halflings-regular.eot rename to app/dashboard/static/fonts/glyphicons-halflings-regular.eot diff --git a/dashboard/static/fonts/glyphicons-halflings-regular.svg b/app/dashboard/static/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from dashboard/static/fonts/glyphicons-halflings-regular.svg rename to app/dashboard/static/fonts/glyphicons-halflings-regular.svg diff --git a/dashboard/static/fonts/glyphicons-halflings-regular.ttf b/app/dashboard/static/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from dashboard/static/fonts/glyphicons-halflings-regular.ttf rename to app/dashboard/static/fonts/glyphicons-halflings-regular.ttf diff --git a/dashboard/static/fonts/glyphicons-halflings-regular.woff b/app/dashboard/static/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from dashboard/static/fonts/glyphicons-halflings-regular.woff rename to app/dashboard/static/fonts/glyphicons-halflings-regular.woff diff --git a/dashboard/static/fonts/glyphicons-halflings-regular.woff2 b/app/dashboard/static/fonts/glyphicons-halflings-regular.woff2 similarity index 100% rename from dashboard/static/fonts/glyphicons-halflings-regular.woff2 rename to app/dashboard/static/fonts/glyphicons-halflings-regular.woff2 diff --git a/dashboard/static/images/favicon.ico b/app/dashboard/static/images/favicon.ico similarity index 100% rename from dashboard/static/images/favicon.ico rename to app/dashboard/static/images/favicon.ico diff --git a/dashboard/static/js/bootstrap.js b/app/dashboard/static/js/bootstrap.js similarity index 100% rename from dashboard/static/js/bootstrap.js rename to app/dashboard/static/js/bootstrap.js diff --git a/dashboard/static/js/bootstrap.min.js b/app/dashboard/static/js/bootstrap.min.js similarity index 100% rename from dashboard/static/js/bootstrap.min.js rename to app/dashboard/static/js/bootstrap.min.js diff --git a/dashboard/static/js/datatables.min.js b/app/dashboard/static/js/datatables.min.js similarity index 100% rename from dashboard/static/js/datatables.min.js rename to app/dashboard/static/js/datatables.min.js diff --git a/dashboard/static/js/html-to-csv.js b/app/dashboard/static/js/html-to-csv.js similarity index 100% rename from dashboard/static/js/html-to-csv.js rename to app/dashboard/static/js/html-to-csv.js diff --git a/dashboard/static/js/jquery.js b/app/dashboard/static/js/jquery.js similarity index 100% rename from dashboard/static/js/jquery.js rename to app/dashboard/static/js/jquery.js diff --git a/dashboard/static/js/plugins/flot/excanvas.min.js b/app/dashboard/static/js/plugins/flot/excanvas.min.js similarity index 100% rename from dashboard/static/js/plugins/flot/excanvas.min.js rename to app/dashboard/static/js/plugins/flot/excanvas.min.js diff --git a/dashboard/static/js/plugins/flot/flot-data.js b/app/dashboard/static/js/plugins/flot/flot-data.js similarity index 100% rename from dashboard/static/js/plugins/flot/flot-data.js rename to app/dashboard/static/js/plugins/flot/flot-data.js diff --git a/dashboard/static/js/plugins/flot/jquery.flot.js b/app/dashboard/static/js/plugins/flot/jquery.flot.js similarity index 100% rename from dashboard/static/js/plugins/flot/jquery.flot.js rename to app/dashboard/static/js/plugins/flot/jquery.flot.js diff --git a/dashboard/static/js/plugins/flot/jquery.flot.pie.js b/app/dashboard/static/js/plugins/flot/jquery.flot.pie.js similarity index 100% rename from dashboard/static/js/plugins/flot/jquery.flot.pie.js rename to app/dashboard/static/js/plugins/flot/jquery.flot.pie.js diff --git a/dashboard/static/js/plugins/flot/jquery.flot.resize.js b/app/dashboard/static/js/plugins/flot/jquery.flot.resize.js similarity index 100% rename from dashboard/static/js/plugins/flot/jquery.flot.resize.js rename to app/dashboard/static/js/plugins/flot/jquery.flot.resize.js diff --git a/dashboard/static/js/plugins/flot/jquery.flot.tooltip.min.js b/app/dashboard/static/js/plugins/flot/jquery.flot.tooltip.min.js similarity index 100% rename from dashboard/static/js/plugins/flot/jquery.flot.tooltip.min.js rename to app/dashboard/static/js/plugins/flot/jquery.flot.tooltip.min.js diff --git a/dashboard/static/js/plugins/morris/morris-data.js b/app/dashboard/static/js/plugins/morris/morris-data.js similarity index 100% rename from dashboard/static/js/plugins/morris/morris-data.js rename to app/dashboard/static/js/plugins/morris/morris-data.js diff --git a/dashboard/static/js/plugins/morris/morris.js b/app/dashboard/static/js/plugins/morris/morris.js similarity index 100% rename from dashboard/static/js/plugins/morris/morris.js rename to app/dashboard/static/js/plugins/morris/morris.js diff --git a/dashboard/static/js/plugins/morris/morris.min.js b/app/dashboard/static/js/plugins/morris/morris.min.js similarity index 100% rename from dashboard/static/js/plugins/morris/morris.min.js rename to app/dashboard/static/js/plugins/morris/morris.min.js diff --git a/dashboard/static/js/plugins/morris/raphael.min.js b/app/dashboard/static/js/plugins/morris/raphael.min.js similarity index 100% rename from dashboard/static/js/plugins/morris/raphael.min.js rename to app/dashboard/static/js/plugins/morris/raphael.min.js diff --git a/dashboard/templates/404.html b/app/dashboard/templates/404.html similarity index 100% rename from dashboard/templates/404.html rename to app/dashboard/templates/404.html diff --git a/dashboard/templates/generic.html b/app/dashboard/templates/generic.html similarity index 100% rename from dashboard/templates/generic.html rename to app/dashboard/templates/generic.html diff --git a/dashboard/templates/history.html b/app/dashboard/templates/history.html similarity index 100% rename from dashboard/templates/history.html rename to app/dashboard/templates/history.html diff --git a/dashboard/templates/index.html b/app/dashboard/templates/index.html similarity index 100% rename from dashboard/templates/index.html rename to app/dashboard/templates/index.html diff --git a/dashboard/templates/manage-packages.html b/app/dashboard/templates/manage-packages.html similarity index 100% rename from dashboard/templates/manage-packages.html rename to app/dashboard/templates/manage-packages.html diff --git a/dashboard/templates/manage.html b/app/dashboard/templates/manage.html similarity index 100% rename from dashboard/templates/manage.html rename to app/dashboard/templates/manage.html diff --git a/dashboard/templates/os-statistics.html b/app/dashboard/templates/os-statistics.html similarity index 97% rename from dashboard/templates/os-statistics.html rename to app/dashboard/templates/os-statistics.html index 6aadc01..bd6d607 100644 --- a/dashboard/templates/os-statistics.html +++ b/app/dashboard/templates/os-statistics.html @@ -20,7 +20,7 @@
| Hostname | +Distribution | Number | Percentage |
|---|