diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..48320be --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM python:3.10-alpine + +ARG supervisor_dir="/usr/src/GameServerSupervisor" + +RUN mkdir -p $supervisor_dir + +WORKDIR $supervisor_dir + +COPY . $supervisor_dir + +RUN pip install --upgrade pip +RUN pip install --no-cache-dir -r requirements.txt + +EXPOSE 80 diff --git a/README.md b/README.md index 3a1554f..abaa049 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,23 @@ # GibCasa GameServerSupervisor -## Prerequisites +## Table of Contents +- [Installation using venv](#installation-using-venv) + - [Prerequisites](#prerequisites) + - [Installation](#installation) +- [Installation using Podman](#installation-using-podman) + - [Prerequisites](#prerequisites-1) + - [Installation](#installation-1) +- [Usage](#usage) +- [Contributing](#contributing) +- [License](#license) + +## Installation using venv + +### Prerequisites Python 3.10 or above -## Installation +### Installation 1. Clone the repository: ```bash @@ -22,19 +35,80 @@ Python 3.10 or above ```bash pip install -r requirements.txt ``` +5. Run tests: +```bash + ./manage.py test +``` +6. Run migrations: +```bash + ./manage.py migrate +``` +7. Create admin user: +```bash + ./manage.py createsuperuser +``` +8. Run server: +```bash + ./manage.py runserver +``` +## Installation using Podman + +### Prerequisites + +Podman + +### Installation + +1. Clone the repository: +```bash + git clone https://git.com.de/GibCasa/GameServerSupervisor +``` +2. Build the image: +```bash + podman build . -t supervisor-image +``` +3. Run a container in an interactive shell: +```bash + podman run -it --network=host localhost/supervisor-image sh +``` +4. Run tests: +```bash + ./manage.py test +``` 5. Run migrations: ```bash - python manage.py migrate + ./manage.py migrate ``` 6. Create admin user: ```bash - python manage.py createsuperuser + ./manage.py createsuperuser ``` 7. Run server: ```bash - python manage.py runserver + ./manage.py runserver ``` -* visit http://localhost:8000 for /public and - http://localhost:8000/admin/ to login via the superuser credentials -* will need docker running +------------- + +To live sync host directory with container folder, in Step 3: +```bash +podman run --network=host -itv /host/src/path:/usr/src/GameServerSupervisor supervisor-image sh +``` +`/host/src/path` is the absolute path to the repository in the host machine. + +## Usage + +* Visit http://localhost:8000 for /public and + http://localhost:8000/admin/ to login via the superuser credentials + +## Contributing + +1. Fork the repository. +2. Create a new branch: `git checkout -b feature-name`. +3. Make your changes. +4. Push your branch: `git push origin feature-name`. +5. Create a pull request. + +## License + +This project is licensed under the [AGPL](https://www.gnu.org/licenses/agpl-3.0.html). diff --git a/webpanel/test_models.py b/webpanel/test_models.py new file mode 100644 index 0000000..6769b1b --- /dev/null +++ b/webpanel/test_models.py @@ -0,0 +1,11 @@ +from django.test import TestCase +from webpanel.models import Game + +class GameTestCase(TestCase): + def setUp(self): + Game.objects.create(name="Assassin's Creed") + + def test_game_creation(self): + assassins = Game.objects.get(name="Assassin's Creed") + assert str(assassins) == "Assassin's Creed" + diff --git a/webpanel/tests.py b/webpanel/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/webpanel/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here.