diff --git a/docker-compose.yml b/docker-compose.yml index df6b642..fe1b13e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3' services: db: - image: postgres:13 + image: postgres:15 volumes: - "./data/db/pgdata:/var/lib/postgresql/data/" env_file: @@ -10,6 +10,7 @@ services: restart: always networks: - internal + pgadmin: image: dpage/pgadmin4 #volumes: @@ -23,23 +24,22 @@ services: - internal depends_on: - db - flask: - build: - context: ./flask - dockerfile: Dockerfile - command: gunicorn --bind 0.0.0.0:5000 manage:app + + forest: + depends_on: + - "db" + build: ./src/forest + image: forest:latest ports: - 5000:5000 - environment: - - "FLASK_ENV=production" - - "FLASK_APP=forest/__init__.py" - - "APP_HOME=/app" env_file: - ./.env + restart: unless-stopped networks: - - internal - depends_on: - - db + - internal + labels: + - meta.role=forest + osmtile: image: overv/openstreetmap-tile-server:2.3.0 hostname: osmtile @@ -55,5 +55,6 @@ services: networks: - internal restart: always + networks: internal: {} diff --git a/flask/Dockerfile b/flask/Dockerfile deleted file mode 100644 index 9d32a3c..0000000 --- a/flask/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM python:3 - -# create directory for the app user -RUN mkdir -p /home/app - -# create the app user -RUN addgroup --system app && adduser --system --group app - -# create the appropriate directories -ENV APP_HOME=/app -RUN mkdir $APP_HOME -WORKDIR $APP_HOME - -# install dependencies -RUN apt-get update && apt-get install -y --no-install-recommends netcat-openbsd gcc - -COPY ./requirements.txt . -RUN pip install -r requirements.txt - -# copy entrypoint.sh -COPY ./entrypoint.sh $APP_HOME - -# copy project -COPY . $APP_HOME - -# chown all the files to the app user -RUN chown -R app:app $APP_HOME - -# change to the app user -USER app - -# run entrypoint.sh -ENTRYPOINT ["./entrypoint.sh"] - diff --git a/flask/entrypoint.sh b/flask/entrypoint.sh deleted file mode 100755 index 37fa201..0000000 --- a/flask/entrypoint.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -if [ "$DATABASE" = "postgres" ] -then - echo "Waiting for postgres..." - - while ! nc -z $SQL_HOST $SQL_PORT; do - sleep 0.1 - done - - echo "PostgreSQL started" -fi - -exec "$@" diff --git a/flask/manage-example.py b/flask/manage-example.py deleted file mode 100644 index 8ceb95f..0000000 --- a/flask/manage-example.py +++ /dev/null @@ -1,23 +0,0 @@ -from flask.cli import FlaskGroup - -from project import app, db, User - - -cli = FlaskGroup(app) - - -@cli.command("create_db") -def create_db(): - db.drop_all() - db.create_all() - db.session.commit() - - -@cli.command("seed_db") -def seed_db(): - db.session.add(User(email="daniel@deflax.net")) - db.session.commit() - - -if __name__ == "__main__": - cli() diff --git a/flask/manage.py b/flask/manage.py deleted file mode 100644 index ffaf0f2..0000000 --- a/flask/manage.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env python - -import os - -from flask.cli import FlaskGroup -from forest import app, db -from forest.models import User - -from flask_migrate import Migrate - -cli = FlaskGroup(app) - -migrate = Migrate() -migrate.init_app(app, db) - -@cli.command("create_db") -def create_db(): - db.drop_all() - db.create_all() - db.session.commit() - - -@cli.command("seed_db") -def seed_db(): - db.session.add(User(email="daniel@deflax.net")) - db.session.commit() - - -@cli.command("upgrade_db") -def upgrade_db(): - """Run deployment tasks.""" - from flask_migrate import upgrade - from app.models import Role, User - - # migrate database to latest revision - upgrade() - - # create user roles - Role.insert_roles() - - -@cli.command("restore_db") -def restore_db(restore_file): - """ recreate db from grid export with python3 manage.py restore /path/grid.tar.bz2 """ - print(str(restore_file)) - #TODO - from app.models import User - db.session.add(User(email=str(user), password=str(password), confirmed=True, confirmed_on=datetime.datetime.now())) - db.session.commit() - - -if __name__ == "__main__": - cli() - diff --git a/src/forest/Dockerfile b/src/forest/Dockerfile new file mode 100644 index 0000000..a4915bc --- /dev/null +++ b/src/forest/Dockerfile @@ -0,0 +1,23 @@ +FROM python:3-bookworm + +# install dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ +netcat-openbsd \ +gcc \ +&& \ +apt-get clean && \ +rm -rf /var/lib/apt/lists/* + +# create the appropriate directories +ENV APP_HOME=/app +RUN mkdir $APP_HOME +WORKDIR $APP_HOME + +# copy project +COPY . $APP_HOME + +RUN pip3 install -r requirements.txt + +EXPOSE 8080 + +CMD [ "waitress-serve", "--port=5000", "--call", "forest:create_app"] \ No newline at end of file diff --git a/flask/forest/__init__.py b/src/forest/__init__.py similarity index 100% rename from flask/forest/__init__.py rename to src/forest/__init__.py diff --git a/flask/forest/admin/__init__.py b/src/forest/admin/__init__.py similarity index 100% rename from flask/forest/admin/__init__.py rename to src/forest/admin/__init__.py diff --git a/flask/forest/admin/routes.py b/src/forest/admin/routes.py similarity index 100% rename from flask/forest/admin/routes.py rename to src/forest/admin/routes.py diff --git a/flask/forest/auth/__init__.py b/src/forest/auth/__init__.py similarity index 100% rename from flask/forest/auth/__init__.py rename to src/forest/auth/__init__.py diff --git a/flask/forest/auth/forms.py b/src/forest/auth/forms.py similarity index 100% rename from flask/forest/auth/forms.py rename to src/forest/auth/forms.py diff --git a/flask/forest/auth/routes.py b/src/forest/auth/routes.py similarity index 100% rename from flask/forest/auth/routes.py rename to src/forest/auth/routes.py diff --git a/flask/forest/config.py b/src/forest/config.py similarity index 100% rename from flask/forest/config.py rename to src/forest/config.py diff --git a/flask/forest/decorators.py b/src/forest/decorators.py similarity index 100% rename from flask/forest/decorators.py rename to src/forest/decorators.py diff --git a/flask/forest/email.py b/src/forest/email.py similarity index 100% rename from flask/forest/email.py rename to src/forest/email.py diff --git a/flask/forest/exceptions.py b/src/forest/exceptions.py similarity index 100% rename from flask/forest/exceptions.py rename to src/forest/exceptions.py diff --git a/flask/forest/main/__init__.py b/src/forest/main/__init__.py similarity index 100% rename from flask/forest/main/__init__.py rename to src/forest/main/__init__.py diff --git a/flask/forest/main/forms.py b/src/forest/main/forms.py similarity index 100% rename from flask/forest/main/forms.py rename to src/forest/main/forms.py diff --git a/flask/forest/main/routes.py b/src/forest/main/routes.py similarity index 100% rename from flask/forest/main/routes.py rename to src/forest/main/routes.py diff --git a/flask/forest/media/.gitkeep b/src/forest/media/.gitkeep similarity index 100% rename from flask/forest/media/.gitkeep rename to src/forest/media/.gitkeep diff --git a/flask/forest/models.py b/src/forest/models.py similarity index 100% rename from flask/forest/models.py rename to src/forest/models.py diff --git a/flask/forest/panel/__init__.py b/src/forest/panel/__init__.py similarity index 100% rename from flask/forest/panel/__init__.py rename to src/forest/panel/__init__.py diff --git a/flask/forest/panel/routes.py b/src/forest/panel/routes.py similarity index 100% rename from flask/forest/panel/routes.py rename to src/forest/panel/routes.py diff --git a/flask/requirements.txt b/src/forest/requirements.txt similarity index 67% rename from flask/requirements.txt rename to src/forest/requirements.txt index 6a5fb16..88e467b 100644 --- a/flask/requirements.txt +++ b/src/forest/requirements.txt @@ -1,6 +1,8 @@ -gunicorn -psycopg2-binary -alembic +APScheduler +requests +blinker +click +waitress Flask Flask-SQLAlchemy Flask-Admin @@ -11,9 +13,14 @@ Flask-Migrate Flask-Moment Flask-Uploads Flask-WTF +itsdangerous Jinja2 PyQRCode WTForms onetimepass +MarkupSafe +Werkzeug email_validator -iso3166 \ No newline at end of file +iso3166 +psycopg2-binary +alembic \ No newline at end of file diff --git a/flask/forest/settings/__init__.py b/src/forest/settings/__init__.py similarity index 100% rename from flask/forest/settings/__init__.py rename to src/forest/settings/__init__.py diff --git a/flask/forest/settings/forms.py b/src/forest/settings/forms.py similarity index 100% rename from flask/forest/settings/forms.py rename to src/forest/settings/forms.py diff --git a/flask/forest/settings/routes.py b/src/forest/settings/routes.py similarity index 100% rename from flask/forest/settings/routes.py rename to src/forest/settings/routes.py diff --git a/flask/forest/static/css/bootstrap-slider.css b/src/forest/static/css/bootstrap-slider.css similarity index 100% rename from flask/forest/static/css/bootstrap-slider.css rename to src/forest/static/css/bootstrap-slider.css diff --git a/flask/forest/static/css/login.css b/src/forest/static/css/login.css similarity index 100% rename from flask/forest/static/css/login.css rename to src/forest/static/css/login.css diff --git a/flask/forest/static/css/login.css-dist b/src/forest/static/css/login.css-dist similarity index 100% rename from flask/forest/static/css/login.css-dist rename to src/forest/static/css/login.css-dist diff --git a/flask/forest/static/css/navbar.css b/src/forest/static/css/navbar.css similarity index 100% rename from flask/forest/static/css/navbar.css rename to src/forest/static/css/navbar.css diff --git a/flask/forest/static/css/no-more-tables.css b/src/forest/static/css/no-more-tables.css similarity index 100% rename from flask/forest/static/css/no-more-tables.css rename to src/forest/static/css/no-more-tables.css diff --git a/flask/forest/static/css/nouislider.css b/src/forest/static/css/nouislider.css similarity index 100% rename from flask/forest/static/css/nouislider.css rename to src/forest/static/css/nouislider.css diff --git a/flask/forest/static/css/panel-transparent.css b/src/forest/static/css/panel-transparent.css similarity index 100% rename from flask/forest/static/css/panel-transparent.css rename to src/forest/static/css/panel-transparent.css diff --git a/flask/forest/static/css/range.css b/src/forest/static/css/range.css similarity index 100% rename from flask/forest/static/css/range.css rename to src/forest/static/css/range.css diff --git a/flask/forest/static/css/simple-slideshow-styles.css b/src/forest/static/css/simple-slideshow-styles.css similarity index 100% rename from flask/forest/static/css/simple-slideshow-styles.css rename to src/forest/static/css/simple-slideshow-styles.css diff --git a/flask/forest/static/css/style.css b/src/forest/static/css/style.css similarity index 100% rename from flask/forest/static/css/style.css rename to src/forest/static/css/style.css diff --git a/flask/forest/static/images/220x180.png b/src/forest/static/images/220x180.png similarity index 100% rename from flask/forest/static/images/220x180.png rename to src/forest/static/images/220x180.png diff --git a/flask/forest/static/images/VPS-Mission.png b/src/forest/static/images/VPS-Mission.png similarity index 100% rename from flask/forest/static/images/VPS-Mission.png rename to src/forest/static/images/VPS-Mission.png diff --git a/flask/forest/static/images/VPS-Security.png b/src/forest/static/images/VPS-Security.png similarity index 100% rename from flask/forest/static/images/VPS-Security.png rename to src/forest/static/images/VPS-Security.png diff --git a/flask/forest/static/images/VPS-Support.png b/src/forest/static/images/VPS-Support.png similarity index 100% rename from flask/forest/static/images/VPS-Support.png rename to src/forest/static/images/VPS-Support.png diff --git a/flask/forest/static/images/VPS-equipment.png b/src/forest/static/images/VPS-equipment.png similarity index 100% rename from flask/forest/static/images/VPS-equipment.png rename to src/forest/static/images/VPS-equipment.png diff --git a/flask/forest/static/images/_bg.jpg b/src/forest/static/images/_bg.jpg similarity index 100% rename from flask/forest/static/images/_bg.jpg rename to src/forest/static/images/_bg.jpg diff --git a/flask/forest/static/images/arrows-alt_ffffff_64.png b/src/forest/static/images/arrows-alt_ffffff_64.png similarity index 100% rename from flask/forest/static/images/arrows-alt_ffffff_64.png rename to src/forest/static/images/arrows-alt_ffffff_64.png diff --git a/flask/forest/static/images/bg-linear.jpg b/src/forest/static/images/bg-linear.jpg similarity index 100% rename from flask/forest/static/images/bg-linear.jpg rename to src/forest/static/images/bg-linear.jpg diff --git a/flask/forest/static/images/bg.jpg b/src/forest/static/images/bg.jpg similarity index 100% rename from flask/forest/static/images/bg.jpg rename to src/forest/static/images/bg.jpg diff --git a/flask/forest/static/images/cloudsbg.jpeg b/src/forest/static/images/cloudsbg.jpeg similarity index 100% rename from flask/forest/static/images/cloudsbg.jpeg rename to src/forest/static/images/cloudsbg.jpeg diff --git a/flask/forest/static/images/cloudsbg.jpeg_disabled b/src/forest/static/images/cloudsbg.jpeg_disabled similarity index 100% rename from flask/forest/static/images/cloudsbg.jpeg_disabled rename to src/forest/static/images/cloudsbg.jpeg_disabled diff --git a/flask/forest/static/images/compress_ffffff_64.png b/src/forest/static/images/compress_ffffff_64.png similarity index 100% rename from flask/forest/static/images/compress_ffffff_64.png rename to src/forest/static/images/compress_ffffff_64.png diff --git a/flask/forest/static/images/createvm.gif b/src/forest/static/images/createvm.gif similarity index 100% rename from flask/forest/static/images/createvm.gif rename to src/forest/static/images/createvm.gif diff --git a/flask/forest/static/images/datapoint-simple-logo.png b/src/forest/static/images/datapoint-simple-logo.png similarity index 100% rename from flask/forest/static/images/datapoint-simple-logo.png rename to src/forest/static/images/datapoint-simple-logo.png diff --git a/flask/forest/static/images/datapoint.png b/src/forest/static/images/datapoint.png similarity index 100% rename from flask/forest/static/images/datapoint.png rename to src/forest/static/images/datapoint.png diff --git a/flask/forest/static/images/fb.png b/src/forest/static/images/fb.png similarity index 100% rename from flask/forest/static/images/fb.png rename to src/forest/static/images/fb.png diff --git a/flask/forest/static/images/footer_cols_divider.png b/src/forest/static/images/footer_cols_divider.png similarity index 100% rename from flask/forest/static/images/footer_cols_divider.png rename to src/forest/static/images/footer_cols_divider.png diff --git a/flask/forest/static/images/footer_header_bg.png b/src/forest/static/images/footer_header_bg.png similarity index 100% rename from flask/forest/static/images/footer_header_bg.png rename to src/forest/static/images/footer_header_bg.png diff --git a/flask/forest/static/images/footer_newsletter_input.png b/src/forest/static/images/footer_newsletter_input.png similarity index 100% rename from flask/forest/static/images/footer_newsletter_input.png rename to src/forest/static/images/footer_newsletter_input.png diff --git a/flask/forest/static/images/footer_newsletter_input_btn.png b/src/forest/static/images/footer_newsletter_input_btn.png similarity index 100% rename from flask/forest/static/images/footer_newsletter_input_btn.png rename to src/forest/static/images/footer_newsletter_input_btn.png diff --git a/flask/forest/static/images/footer_top_bg.png b/src/forest/static/images/footer_top_bg.png similarity index 100% rename from flask/forest/static/images/footer_top_bg.png rename to src/forest/static/images/footer_top_bg.png diff --git a/flask/forest/static/images/header-layer.jpg b/src/forest/static/images/header-layer.jpg similarity index 100% rename from flask/forest/static/images/header-layer.jpg rename to src/forest/static/images/header-layer.jpg diff --git a/flask/forest/static/images/hex24.png b/src/forest/static/images/hex24.png similarity index 100% rename from flask/forest/static/images/hex24.png rename to src/forest/static/images/hex24.png diff --git a/flask/forest/static/images/hex32.png b/src/forest/static/images/hex32.png similarity index 100% rename from flask/forest/static/images/hex32.png rename to src/forest/static/images/hex32.png diff --git a/flask/forest/static/images/hex512.png b/src/forest/static/images/hex512.png similarity index 100% rename from flask/forest/static/images/hex512.png rename to src/forest/static/images/hex512.png diff --git a/flask/forest/static/images/panel/icons8-administrative-tools-100.png b/src/forest/static/images/panel/icons8-administrative-tools-100.png similarity index 100% rename from flask/forest/static/images/panel/icons8-administrative-tools-100.png rename to src/forest/static/images/panel/icons8-administrative-tools-100.png diff --git a/flask/forest/static/images/panel/icons8-processor-40.png b/src/forest/static/images/panel/icons8-processor-40.png similarity index 100% rename from flask/forest/static/images/panel/icons8-processor-40.png rename to src/forest/static/images/panel/icons8-processor-40.png diff --git a/flask/forest/static/images/purplebg.jpg b/src/forest/static/images/purplebg.jpg similarity index 100% rename from flask/forest/static/images/purplebg.jpg rename to src/forest/static/images/purplebg.jpg diff --git a/flask/forest/static/images/purplebg1.jpg b/src/forest/static/images/purplebg1.jpg similarity index 100% rename from flask/forest/static/images/purplebg1.jpg rename to src/forest/static/images/purplebg1.jpg diff --git a/flask/forest/static/images/purplebg2.jpg b/src/forest/static/images/purplebg2.jpg similarity index 100% rename from flask/forest/static/images/purplebg2.jpg rename to src/forest/static/images/purplebg2.jpg diff --git a/flask/forest/static/images/server.png b/src/forest/static/images/server.png similarity index 100% rename from flask/forest/static/images/server.png rename to src/forest/static/images/server.png diff --git a/flask/forest/static/images/srv.png b/src/forest/static/images/srv.png similarity index 100% rename from flask/forest/static/images/srv.png rename to src/forest/static/images/srv.png diff --git a/flask/forest/static/images/texture-diagonal.png b/src/forest/static/images/texture-diagonal.png similarity index 100% rename from flask/forest/static/images/texture-diagonal.png rename to src/forest/static/images/texture-diagonal.png diff --git a/flask/forest/static/js/better-simple-slideshow.js b/src/forest/static/js/better-simple-slideshow.js similarity index 100% rename from flask/forest/static/js/better-simple-slideshow.js rename to src/forest/static/js/better-simple-slideshow.js diff --git a/flask/forest/static/js/bootstrap-slider.js b/src/forest/static/js/bootstrap-slider.js similarity index 100% rename from flask/forest/static/js/bootstrap-slider.js rename to src/forest/static/js/bootstrap-slider.js diff --git a/flask/forest/static/js/clouds.js b/src/forest/static/js/clouds.js similarity index 100% rename from flask/forest/static/js/clouds.js rename to src/forest/static/js/clouds.js diff --git a/flask/forest/static/js/jquery.js b/src/forest/static/js/jquery.js similarity index 100% rename from flask/forest/static/js/jquery.js rename to src/forest/static/js/jquery.js diff --git a/flask/forest/static/js/mgui.js b/src/forest/static/js/mgui.js similarity index 100% rename from flask/forest/static/js/mgui.js rename to src/forest/static/js/mgui.js diff --git a/flask/forest/static/js/nouislider.min.js b/src/forest/static/js/nouislider.min.js similarity index 100% rename from flask/forest/static/js/nouislider.min.js rename to src/forest/static/js/nouislider.min.js diff --git a/flask/forest/static/js/rangeslider.js b/src/forest/static/js/rangeslider.js similarity index 100% rename from flask/forest/static/js/rangeslider.js rename to src/forest/static/js/rangeslider.js diff --git a/flask/forest/static/slideshow/1.jpg b/src/forest/static/slideshow/1.jpg similarity index 100% rename from flask/forest/static/slideshow/1.jpg rename to src/forest/static/slideshow/1.jpg diff --git a/flask/forest/static/slideshow/2.jpg b/src/forest/static/slideshow/2.jpg similarity index 100% rename from flask/forest/static/slideshow/2.jpg rename to src/forest/static/slideshow/2.jpg diff --git a/flask/forest/static/slideshow/3.jpg b/src/forest/static/slideshow/3.jpg similarity index 100% rename from flask/forest/static/slideshow/3.jpg rename to src/forest/static/slideshow/3.jpg diff --git a/flask/forest/static/slideshow/4.jpg b/src/forest/static/slideshow/4.jpg similarity index 100% rename from flask/forest/static/slideshow/4.jpg rename to src/forest/static/slideshow/4.jpg diff --git a/flask/forest/static/slideshow/5.jpg b/src/forest/static/slideshow/5.jpg similarity index 100% rename from flask/forest/static/slideshow/5.jpg rename to src/forest/static/slideshow/5.jpg diff --git a/flask/forest/static/slideshow/6.jpg b/src/forest/static/slideshow/6.jpg similarity index 100% rename from flask/forest/static/slideshow/6.jpg rename to src/forest/static/slideshow/6.jpg diff --git a/flask/forest/static/slideshow/robot.png b/src/forest/static/slideshow/robot.png similarity index 100% rename from flask/forest/static/slideshow/robot.png rename to src/forest/static/slideshow/robot.png diff --git a/flask/forest/static/slideshow/robot2.png b/src/forest/static/slideshow/robot2.png similarity index 100% rename from flask/forest/static/slideshow/robot2.png rename to src/forest/static/slideshow/robot2.png diff --git a/flask/forest/templates/admin/addr2pool.html b/src/forest/templates/admin/addr2pool.html similarity index 100% rename from flask/forest/templates/admin/addr2pool.html rename to src/forest/templates/admin/addr2pool.html diff --git a/flask/forest/templates/admin/admin_tasks.html b/src/forest/templates/admin/admin_tasks.html similarity index 100% rename from flask/forest/templates/admin/admin_tasks.html rename to src/forest/templates/admin/admin_tasks.html diff --git a/flask/forest/templates/admin/charge.html b/src/forest/templates/admin/charge.html similarity index 100% rename from flask/forest/templates/admin/charge.html rename to src/forest/templates/admin/charge.html diff --git a/flask/forest/templates/admin/list_addresses.html b/src/forest/templates/admin/list_addresses.html similarity index 100% rename from flask/forest/templates/admin/list_addresses.html rename to src/forest/templates/admin/list_addresses.html diff --git a/flask/forest/templates/admin/list_archive.html b/src/forest/templates/admin/list_archive.html similarity index 100% rename from flask/forest/templates/admin/list_archive.html rename to src/forest/templates/admin/list_archive.html diff --git a/flask/forest/templates/admin/list_deployments.html b/src/forest/templates/admin/list_deployments.html similarity index 100% rename from flask/forest/templates/admin/list_deployments.html rename to src/forest/templates/admin/list_deployments.html diff --git a/flask/forest/templates/admin/list_domains.html b/src/forest/templates/admin/list_domains.html similarity index 100% rename from flask/forest/templates/admin/list_domains.html rename to src/forest/templates/admin/list_domains.html diff --git a/flask/forest/templates/admin/list_items.html b/src/forest/templates/admin/list_items.html similarity index 100% rename from flask/forest/templates/admin/list_items.html rename to src/forest/templates/admin/list_items.html diff --git a/flask/forest/templates/admin/list_orders.html b/src/forest/templates/admin/list_orders.html similarity index 100% rename from flask/forest/templates/admin/list_orders.html rename to src/forest/templates/admin/list_orders.html diff --git a/flask/forest/templates/admin/list_servers.html b/src/forest/templates/admin/list_servers.html similarity index 100% rename from flask/forest/templates/admin/list_servers.html rename to src/forest/templates/admin/list_servers.html diff --git a/flask/forest/templates/admin/list_services.html b/src/forest/templates/admin/list_services.html similarity index 100% rename from flask/forest/templates/admin/list_services.html rename to src/forest/templates/admin/list_services.html diff --git a/flask/forest/templates/admin/list_transactions.html b/src/forest/templates/admin/list_transactions.html similarity index 100% rename from flask/forest/templates/admin/list_transactions.html rename to src/forest/templates/admin/list_transactions.html diff --git a/flask/forest/templates/admin/list_users.html b/src/forest/templates/admin/list_users.html similarity index 100% rename from flask/forest/templates/admin/list_users.html rename to src/forest/templates/admin/list_users.html diff --git a/flask/forest/templates/admin/menu_cloud.html b/src/forest/templates/admin/menu_cloud.html similarity index 100% rename from flask/forest/templates/admin/menu_cloud.html rename to src/forest/templates/admin/menu_cloud.html diff --git a/flask/forest/templates/admin/menu_deployments.html b/src/forest/templates/admin/menu_deployments.html similarity index 100% rename from flask/forest/templates/admin/menu_deployments.html rename to src/forest/templates/admin/menu_deployments.html diff --git a/flask/forest/templates/auth/2fa.html b/src/forest/templates/auth/2fa.html similarity index 100% rename from flask/forest/templates/auth/2fa.html rename to src/forest/templates/auth/2fa.html diff --git a/flask/forest/templates/auth/already_confirmed.html b/src/forest/templates/auth/already_confirmed.html similarity index 100% rename from flask/forest/templates/auth/already_confirmed.html rename to src/forest/templates/auth/already_confirmed.html diff --git a/flask/forest/templates/auth/change_password.html b/src/forest/templates/auth/change_password.html similarity index 100% rename from flask/forest/templates/auth/change_password.html rename to src/forest/templates/auth/change_password.html diff --git a/flask/forest/templates/auth/email/adm_loginnotify.html b/src/forest/templates/auth/email/adm_loginnotify.html similarity index 100% rename from flask/forest/templates/auth/email/adm_loginnotify.html rename to src/forest/templates/auth/email/adm_loginnotify.html diff --git a/flask/forest/templates/auth/email/adm_loginnotify.txt b/src/forest/templates/auth/email/adm_loginnotify.txt similarity index 100% rename from flask/forest/templates/auth/email/adm_loginnotify.txt rename to src/forest/templates/auth/email/adm_loginnotify.txt diff --git a/flask/forest/templates/auth/email/adm_regnotify.html b/src/forest/templates/auth/email/adm_regnotify.html similarity index 100% rename from flask/forest/templates/auth/email/adm_regnotify.html rename to src/forest/templates/auth/email/adm_regnotify.html diff --git a/flask/forest/templates/auth/email/adm_regnotify.txt b/src/forest/templates/auth/email/adm_regnotify.txt similarity index 100% rename from flask/forest/templates/auth/email/adm_regnotify.txt rename to src/forest/templates/auth/email/adm_regnotify.txt diff --git a/flask/forest/templates/auth/email/confirm.html b/src/forest/templates/auth/email/confirm.html similarity index 100% rename from flask/forest/templates/auth/email/confirm.html rename to src/forest/templates/auth/email/confirm.html diff --git a/flask/forest/templates/auth/email/confirm.txt b/src/forest/templates/auth/email/confirm.txt similarity index 100% rename from flask/forest/templates/auth/email/confirm.txt rename to src/forest/templates/auth/email/confirm.txt diff --git a/flask/forest/templates/auth/email/reset_password.html b/src/forest/templates/auth/email/reset_password.html similarity index 100% rename from flask/forest/templates/auth/email/reset_password.html rename to src/forest/templates/auth/email/reset_password.html diff --git a/flask/forest/templates/auth/email/reset_password.txt b/src/forest/templates/auth/email/reset_password.txt similarity index 100% rename from flask/forest/templates/auth/email/reset_password.txt rename to src/forest/templates/auth/email/reset_password.txt diff --git a/flask/forest/templates/auth/login.html b/src/forest/templates/auth/login.html similarity index 100% rename from flask/forest/templates/auth/login.html rename to src/forest/templates/auth/login.html diff --git a/flask/forest/templates/auth/register.html b/src/forest/templates/auth/register.html similarity index 100% rename from flask/forest/templates/auth/register.html rename to src/forest/templates/auth/register.html diff --git a/flask/forest/templates/auth/reset_password.html b/src/forest/templates/auth/reset_password.html similarity index 100% rename from flask/forest/templates/auth/reset_password.html rename to src/forest/templates/auth/reset_password.html diff --git a/flask/forest/templates/auth/unconfirmed.html b/src/forest/templates/auth/unconfirmed.html similarity index 100% rename from flask/forest/templates/auth/unconfirmed.html rename to src/forest/templates/auth/unconfirmed.html diff --git a/flask/forest/templates/base.html b/src/forest/templates/base.html similarity index 100% rename from flask/forest/templates/base.html rename to src/forest/templates/base.html diff --git a/flask/forest/templates/email/adm_logger.html b/src/forest/templates/email/adm_logger.html similarity index 100% rename from flask/forest/templates/email/adm_logger.html rename to src/forest/templates/email/adm_logger.html diff --git a/flask/forest/templates/email/adm_logger.txt b/src/forest/templates/email/adm_logger.txt similarity index 100% rename from flask/forest/templates/email/adm_logger.txt rename to src/forest/templates/email/adm_logger.txt diff --git a/flask/forest/templates/email/client_logger.html b/src/forest/templates/email/client_logger.html similarity index 100% rename from flask/forest/templates/email/client_logger.html rename to src/forest/templates/email/client_logger.html diff --git a/flask/forest/templates/email/client_logger.txt b/src/forest/templates/email/client_logger.txt similarity index 100% rename from flask/forest/templates/email/client_logger.txt rename to src/forest/templates/email/client_logger.txt diff --git a/flask/forest/templates/errors/403.html b/src/forest/templates/errors/403.html similarity index 100% rename from flask/forest/templates/errors/403.html rename to src/forest/templates/errors/403.html diff --git a/flask/forest/templates/errors/404.html b/src/forest/templates/errors/404.html similarity index 100% rename from flask/forest/templates/errors/404.html rename to src/forest/templates/errors/404.html diff --git a/flask/forest/templates/errors/500.html b/src/forest/templates/errors/500.html similarity index 100% rename from flask/forest/templates/errors/500.html rename to src/forest/templates/errors/500.html diff --git a/flask/forest/templates/errors/503.html b/src/forest/templates/errors/503.html similarity index 100% rename from flask/forest/templates/errors/503.html rename to src/forest/templates/errors/503.html diff --git a/flask/forest/templates/errors/csrf_error.html b/src/forest/templates/errors/csrf_error.html similarity index 100% rename from flask/forest/templates/errors/csrf_error.html rename to src/forest/templates/errors/csrf_error.html diff --git a/flask/forest/templates/main/aboutus.html b/src/forest/templates/main/aboutus.html similarity index 100% rename from flask/forest/templates/main/aboutus.html rename to src/forest/templates/main/aboutus.html diff --git a/flask/forest/templates/main/footer_colored.html b/src/forest/templates/main/footer_colored.html similarity index 100% rename from flask/forest/templates/main/footer_colored.html rename to src/forest/templates/main/footer_colored.html diff --git a/flask/forest/templates/main/footer_index.html b/src/forest/templates/main/footer_index.html similarity index 100% rename from flask/forest/templates/main/footer_index.html rename to src/forest/templates/main/footer_index.html diff --git a/flask/forest/templates/main/footer_simple.html b/src/forest/templates/main/footer_simple.html similarity index 100% rename from flask/forest/templates/main/footer_simple.html rename to src/forest/templates/main/footer_simple.html diff --git a/flask/forest/templates/main/index.html b/src/forest/templates/main/index.html similarity index 100% rename from flask/forest/templates/main/index.html rename to src/forest/templates/main/index.html diff --git a/flask/forest/templates/main/terms.html b/src/forest/templates/main/terms.html similarity index 100% rename from flask/forest/templates/main/terms.html rename to src/forest/templates/main/terms.html diff --git a/flask/forest/templates/nav.html b/src/forest/templates/nav.html similarity index 100% rename from flask/forest/templates/nav.html rename to src/forest/templates/nav.html diff --git a/flask/forest/templates/panel/dashboard.html b/src/forest/templates/panel/dashboard.html similarity index 100% rename from flask/forest/templates/panel/dashboard.html rename to src/forest/templates/panel/dashboard.html diff --git a/flask/forest/templates/panel/items.html b/src/forest/templates/panel/items.html similarity index 100% rename from flask/forest/templates/panel/items.html rename to src/forest/templates/panel/items.html diff --git a/flask/forest/templates/settings/acc_avatar.html b/src/forest/templates/settings/acc_avatar.html similarity index 100% rename from flask/forest/templates/settings/acc_avatar.html rename to src/forest/templates/settings/acc_avatar.html diff --git a/flask/forest/templates/settings/acc_info.html b/src/forest/templates/settings/acc_info.html similarity index 100% rename from flask/forest/templates/settings/acc_info.html rename to src/forest/templates/settings/acc_info.html diff --git a/flask/forest/templates/settings/profile.html b/src/forest/templates/settings/profile.html similarity index 100% rename from flask/forest/templates/settings/profile.html rename to src/forest/templates/settings/profile.html