No description
  • JavaScript 37.6%
  • Python 31.1%
  • HTML 14%
  • CSS 11.5%
  • Just 2.6%
  • Other 3.2%
Find a file
Augspies ad05de2827
All checks were successful
deploy / staging (push) Successful in 2m32s
deploy / production (push) Has been skipped
Merge pull request 'order-by-created' (#52) from order-by-created into dev
Reviewed-on: #52
2026-08-31 20:08:29 +02:00
.forgejo/workflows feat(anisble): add django_k8s role deployment 2026-07-26 15:07:59 +02:00
apps fix(youtubedl): order video_requests by created 2026-08-31 20:05:01 +02:00
deploy fix(video_requests): Fix shit 2026-08-22 08:43:11 +02:00
expatgibs fix(bugs): send the fixes 2026-08-30 17:24:10 +02:00
http chore(app): cleanup helper and youtubedl 2026-08-21 07:50:02 +02:00
.dockerignore feat: adds smart cookie choice and retry 2026-03-08 20:09:28 +01:00
.gitignore feat: approve workflow 2026-03-08 10:24:12 +01:00
.isort.cfg feat: First commit 2026-02-13 17:16:49 +01:00
.pre-commit-config.yaml feat(deploy): add ansible kustomize deployment 2026-04-26 21:52:15 +02:00
build.config.js feat: First commit 2026-02-13 17:16:49 +01:00
bun.lock feat: First commit 2026-02-13 17:16:49 +01:00
conftest.py feat: adds unit tests 2026-03-15 16:47:44 +01:00
docker-compose-deploy.yml chore(celery): remove all celery infra 2026-08-21 15:38:51 +02:00
docker-compose.yml fix(youtubedl): video request hx-sync added 2026-05-03 17:22:13 +02:00
docker-entrypoint.sh fix(deploy): postgres up detection in image 2026-04-25 17:26:15 +02:00
Dockerfile fix(deploy): bad domain name. 2026-07-26 15:39:48 +02:00
justfile add the new status line 2026-08-23 18:58:47 +02:00
manage.py feat: First commit 2026-02-13 17:16:49 +01:00
package.json feat: approve workflow 2026-03-08 10:24:12 +01:00
pyproject.toml chore(celery): remove all celery infra 2026-08-21 15:38:51 +02:00
README.md feat: First commit 2026-02-13 17:16:49 +01:00
uv.lock add a uv.lock 2026-08-21 19:36:08 +02:00

Expat Gibson

✏️ Develop

To begin you should have the following applications installed on your local development system:

  • Python >= 3.13.7
  • bun
  • uv
  • Postgres >= 16
  • git >= 2.26

💪 Setup Manually

1. Get the project

First clone the repository from Github and switch to the new directory:

    $ git clone git@github.com:caktus/expatgibs.git
    $ cd expatgibs

2. Set up virtual environment

Next, set up your virtual environment with python3. For example, expatgibs.

You will note the distinct lack of opinion on how you should manage your virtual environment. This is by design.

3. Install dependencies

nvm is preferred for managing Node versions and .nvmrc contains the specific Node version for this project. To install the correct (and latest) Node version run:

    (expatgibs)$ nvm install

Now install the project Node packages with npm:

    (expatgibs)$ npm install

Install Python dependencies with:

    (expatgibs)$ make setup

NOTE: This project uses pip-tools. If the dependency .txt files need to be updated:

    (expatgibs)$ make update_requirements setup

NOTE 2: During a development cycle if a developer needs to add subtract or modify the requirements of the project, the workflow is to:

  1. Make the change in the *.in requirement file
  2. run make update_requirements
  3. commit both *.in file(s) and the *.txt file(s) generated

4. Pre-commit

pre-commit is used to enforce a variety of community standards. CI runs it, so it's useful to setup the pre-commit hook to catch any issues before pushing to GitHub and reset your pre-commit cache to make sure that you're starting fresh.

To install, run:

    (expatgibs)$ pre-commit clean
    (expatgibs)$ pre-commit install

5. Set up local env variables

Next, we'll set up our local environment variables. We use django-dotenv to automatically read environment variables located in a file named .env in the top level directory of the project (but you may use any other way of setting environment variables, like direnv or manually setting them). The only variable we need to start is DJANGO_SETTINGS_MODULE:

    (expatgibs)$ cp expatgibs/settings/local.example.py expatgibs/settings/local.py
    (expatgibs)$ echo "DJANGO_SETTINGS_MODULE=expatgibs.settings.local" > .env

6. Database

The setup for local development assumes that you will be working with dockerized services.

First add the following line to your .env file:

(expatgibs)$ echo "DATABASE_URL=postgres://postgres@127.0.0.1:5432/expatgibs" >> .env

The docker-compose.yml sets up environment variables in a file, .postgres. To use the Docker setup, add these lines to that file:

    POSTGRES_DB=expatgibs
    POSTGRES_HOST_AUTH_METHOD=trust

If you want to connect to the database from your host machine, export the following shell environment variables:

    export PGHOST=127.0.0.1
    export PGPORT=5432
    export PGUSER=postgres
    export PGDATABASE=expatgibs

7. Migrate and create a superuser

    (expatgibs)$ docker-compose up -d
    (expatgibs)$ python manage.py migrate
    (expatgibs)$ python manage.py createsuperuser

8. Run the server

    (expatgibs)$ docker-compose up -d
    (expatgibs)$ make run-dev

After initial setup the development server should be run using make run-dev this will remove any deployment containers hanging around and setup using local sources and database.

9. Access the server

The Django admin is at /admin and the Wagtail admin is at /cms.

10. Run tests

expatgibs uses pytest as a test runner.

    (expatgibs)$ make run-tests