Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
213 commits
Select commit Hold shift + click to select a range
751ff4e
Merge branch 'release/0.9.0' into develop
qoda Jul 19, 2022
03efba6
Added active field to device pin model
qoda Jul 20, 2022
3c8c9ff
Increased cache timeout
qoda Jul 20, 2022
9f7c56a
Added logging handler to mqtt command
qoda Jul 20, 2022
df10acd
Added device health model of the back of health endpoint
qoda Jul 24, 2022
e945c7c
Added docker-compose
qoda Aug 2, 2022
9377142
Added restart always to all docker containers
qoda Aug 2, 2022
8f9383f
Added auto reload to docker-compose
qoda Aug 2, 2022
e7364d5
Added mosquitto config for docker compose
qoda Aug 2, 2022
343be85
Added mosquitto config for docker compose
qoda Aug 2, 2022
426a6d8
Additional tweaks to docker-compose
qoda Aug 2, 2022
c93ff3e
Fix docker build env
qoda Aug 3, 2022
d9e3577
Removed docker
qoda Aug 4, 2022
c2db4b4
Revert "Removed docker"
qoda Aug 4, 2022
22fca51
Downgrade cryptography
qoda Aug 4, 2022
2b3f870
Revert "Downgrade cryptography"
qoda Aug 4, 2022
8111127
Downgrade cryptography
qoda Aug 4, 2022
496afb1
Attempt to get rust dep building
qoda Aug 4, 2022
d3d4ecb
Removed docker-compose for deps
qoda Aug 4, 2022
5cd4d3f
Allow support for python 3.9
qoda Aug 5, 2022
af8a213
Minor poetry updates
qoda Aug 5, 2022
a96a62e
Minor poetry updates
qoda Aug 5, 2022
cc6e064
Added setting to to configure auto syncing of device config
qoda Aug 17, 2022
b7a7e43
Fixed poetry install in dockerfile
qoda Aug 17, 2022
a14d793
Removed mqtt client id subsitution in initial device config signal
qoda Aug 17, 2022
2580f8f
Make device to device pin relationship m2m
qoda Aug 17, 2022
92e9e90
Make device to device pin relationship m2m
qoda Aug 17, 2022
4c4e088
Removed status field from health model in favour of a property based …
qoda Dec 1, 2022
747ffef
Updated build docs and docker compose
qoda Dec 1, 2022
d7e2fec
Remove rust env step in dockerfile
qoda Dec 1, 2022
f2780a7
Updated to set executables in docker image
qoda Dec 1, 2022
fec2060
Attempting arm64 compatible postgis image
qoda Dec 5, 2022
5d4ef15
Improvement to docker-compose
qoda Dec 6, 2022
5694119
Remove mosquitto conf
qoda Dec 6, 2022
2242538
Update documentation on setting up mqtt
qoda Dec 6, 2022
ec34044
Fixed mqtt docker naming
qoda Dec 6, 2022
72cf0be
Fixed health field issue in device detail view
qoda Dec 6, 2022
2c90e18
Added status to health serialiser
qoda Dec 6, 2022
01b243e
Update README.md
qoda Dec 15, 2022
8d932de
Update README.md
qoda Dec 15, 2022
bdb5fea
Updated deployment instructions
qoda Feb 21, 2023
bd3999f
Improvements to build process
qoda Feb 21, 2023
9373529
Added ipython dep
qoda Feb 21, 2023
e0b3d40
Merge branch 'develop' of github.com:hacklabza/iotserver into develop
qoda Feb 21, 2023
b956e23
Updated dependancies
qoda Feb 21, 2023
b2d46b1
Updated pinned versions of dependancies
qoda Feb 21, 2023
a851ec6
Updated ipython dependency
qoda Feb 21, 2023
b7b8b65
Fix postges docker permission issue
qoda Feb 22, 2023
fd5f141
Updated driver/plugin structure
qoda Feb 23, 2023
134076c
Added systemd templates and instructions
qoda Feb 23, 2023
def16e8
Updated documentation
qoda Feb 24, 2023
999332f
Added additional admin fields to device pin
qoda Feb 27, 2023
98b70e0
Added filtering to device viewset
qoda Mar 3, 2023
87f114c
Added sorted to device status viewset
qoda Mar 3, 2023
10f854a
Added field to pins to allow for display configuration
qoda Mar 6, 2023
34a0f50
Added i2c field to device pin model
qoda Mar 11, 2023
aaa2954
Downgrade cryto dep due to rust compiler issue
qoda Mar 18, 2023
611be05
Regenerate lock file
qoda Mar 18, 2023
43e452f
Minor update to cors
qoda Mar 21, 2023
6d88266
Added status aggregation serializer
qoda Mar 21, 2023
223af4c
Removed status aggregation serializer
qoda Mar 21, 2023
dca61d0
Fixed device serializer
qoda Mar 21, 2023
0fe1247
Improvments to device api filters
qoda Mar 22, 2023
522c7c1
Fixed cors issue
qoda Mar 22, 2023
90ce776
Fixed cors issue
qoda Mar 22, 2023
c17d7ef
Fixed sample filter issue
qoda Mar 22, 2023
e18470c
Bumped cryptography version
qoda May 23, 2023
5b0465a
Bump pygments from 2.14.0 to 2.15.0
dependabot[bot] Jul 20, 2023
b58626d
Merge pull request #15 from hacklabza/dependabot/pip/pygments-2.15.0
qoda Aug 10, 2023
13becc8
Dependabot updates
Aug 10, 2023
f6643cd
Added a new sonoff integration
qoda Aug 15, 2023
0c081b3
Fix linting issue
qoda Aug 15, 2023
d7a5723
Bump cryptography from 41.0.3 to 41.0.4
dependabot[bot] Sep 21, 2023
3814d58
Bump urllib3 from 1.26.15 to 1.26.17
dependabot[bot] Oct 3, 2023
22e7009
Added util to toggle devices via mqtt
qoda Oct 3, 2023
675b397
Added mqtt toggle to device admin actions
qoda Oct 3, 2023
d3f00fd
Added helper to device models to toggle via mqtt and determine if dev…
qoda Oct 3, 2023
936b695
Minor refactor of mqtt management command
qoda Oct 3, 2023
7e847b2
Merge pull request #17 from hacklabza/dependabot/pip/urllib3-1.26.17
qoda Oct 3, 2023
7c74dd9
Bump certifi from 2022.12.7 to 2023.7.22
dependabot[bot] Oct 3, 2023
5138241
Merge branch 'develop' into dependabot/pip/cryptography-41.0.4
qoda Oct 3, 2023
b2a94a3
Merge pull request #16 from hacklabza/dependabot/pip/cryptography-41.0.4
qoda Oct 3, 2023
62c59cd
Merge pull request #18 from hacklabza/dependabot/pip/certifi-2023.7.22
qoda Oct 3, 2023
163ec6d
Updated dependancies
qoda Oct 3, 2023
7cff8c1
Fixed mqtt state
qoda Oct 3, 2023
9ba8186
Debugging toggle status
qoda Oct 3, 2023
a16d2e6
Refactor mqtt toggle to allow for on or off
qoda Oct 3, 2023
f83edc8
Added device toggle action to device viewset
qoda Oct 3, 2023
c2263bc
Fixed issue with toggle action
qoda Oct 3, 2023
ff61673
Bump urllib3 from 2.0.6 to 2.0.7
dependabot[bot] Oct 17, 2023
b6a226a
Minor cleanup of docs
qoda Oct 18, 2023
277185c
Refactored mqtt toggle
qoda Oct 18, 2023
2cf3fb9
Refactored last status attr
qoda Oct 18, 2023
758899b
Merge pull request #19 from hacklabza/dependabot/pip/urllib3-2.0.7
qoda Oct 18, 2023
0d74cb2
Renamed device pin m2m to device to devices
qoda Oct 18, 2023
122dbb6
Removed depricated setting
qoda Oct 18, 2023
0ce4f66
Fixed viewset tests
qoda Oct 18, 2023
4e111b8
Added pre-commit instructions to readme
qoda Oct 18, 2023
cf380cd
Updated dependancies
qoda Oct 18, 2023
cf5c49f
Added additionals tests and fixed failing tests
qoda Oct 18, 2023
ee6ce63
Renamed django test runner action
qoda Oct 18, 2023
c4ed6f3
Renamed django test runner action
qoda Oct 18, 2023
7746c4a
Added coverage to pytest
qoda Oct 18, 2023
d200045
Improved coverage ignore
qoda Oct 18, 2023
9f5d80c
Attempt to get github test action to run on project Dockerfile
qoda Oct 18, 2023
d5bcaff
Removed django test runner github action
qoda Oct 18, 2023
0e48d85
Modified to improve tests
qoda Dec 24, 2023
428d5d6
Updated weather integration to use latest version of openweather onec…
qoda Sep 13, 2024
07e1846
Made improvements to the documentation
qoda Oct 8, 2024
1d21b1e
Updated setup instructions
qoda Oct 9, 2024
64bea2e
Enhanced json field in admin
qoda Aug 26, 2025
8fec39e
Made some improvements to the development environment
qoda Aug 26, 2025
e3c781f
Fixed issue with json widget and some devleopment environment updates
qoda Aug 31, 2025
2de326d
Added json formatting to all required admin fields
qoda Aug 31, 2025
217030c
Added openapi specs and swagger/redoc ui to api
qoda Oct 1, 2025
8db707f
Removed device health from api view as it's already available in the …
qoda Oct 1, 2025
c3a42dd
Added aggregated stats to device api endpoint
qoda Oct 27, 2025
5e4a0d9
Improved aggregation averages
qoda Oct 28, 2025
eb26410
Improved documentation in webrepl util
qoda Nov 17, 2025
74d7d9d
Improved documentation and type hints in mqtt management command
qoda Nov 17, 2025
ed009e9
Fixed mqtt management command method params
qoda Nov 17, 2025
fc6f409
Fixed aggregated status and minor refactor
qoda Nov 17, 2025
2a48209
Fixed bug in aggregation function where value is not a number
qoda Nov 17, 2025
38f5b51
Fixed bug in aggregation function where value is not a number
qoda Nov 17, 2025
a73505f
Fixed bug in aggregation function where value is not a number
qoda Nov 17, 2025
a57dcb0
Added initial unittests for utils
qoda Nov 18, 2025
05e356c
Added device pin type in order to identify conditions based on the type
qoda Nov 18, 2025
836acd1
Added test runner to github actions
qoda Nov 18, 2025
6ccc09c
Updated github action to include gdal and postgis
qoda Nov 18, 2025
25cce1a
Fixed db connection issue in github action
qoda Nov 18, 2025
7592fbc
Fixed failing tests
qoda Nov 18, 2025
c9bc090
Added coverage badge
qoda Nov 18, 2025
f5faf82
Bump django from 4.2.6 to 4.2.7
dependabot[bot] Nov 18, 2025
15f19d6
Merge pull request #20 from hacklabza/dependabot/pip/django-4.2.7
qoda Nov 18, 2025
6b52821
Bump urllib3 from 2.0.7 to 2.5.0
dependabot[bot] Nov 18, 2025
584e3e4
Bump requests from 2.31.0 to 2.32.4
dependabot[bot] Nov 18, 2025
7f474c8
Bump setuptools from 68.2.2 to 78.1.1
dependabot[bot] Nov 18, 2025
124aefb
Merge pull request #29 from hacklabza/dependabot/pip/setuptools-78.1.1
qoda Nov 18, 2025
fbcbbd5
Merge pull request #28 from hacklabza/dependabot/pip/requests-2.32.4
qoda Nov 18, 2025
28d6591
Bump virtualenv from 20.24.5 to 20.26.6
dependabot[bot] Nov 18, 2025
1131873
Merge pull request #27 from hacklabza/dependabot/pip/urllib3-2.5.0
qoda Nov 18, 2025
3876960
Bump idna from 3.4 to 3.7
dependabot[bot] Nov 18, 2025
5c0842a
Bump sqlparse from 0.4.4 to 0.5.0
dependabot[bot] Nov 18, 2025
7c09e0e
Bump certifi from 2023.7.22 to 2024.7.4
dependabot[bot] Nov 18, 2025
8c92a1f
Bump gunicorn from 20.1.0 to 22.0.0
dependabot[bot] Nov 18, 2025
3bdfaf8
Merge pull request #25 from hacklabza/dependabot/pip/virtualenv-20.26.6
qoda Nov 18, 2025
3e5ad7c
Merge pull request #24 from hacklabza/dependabot/pip/certifi-2024.7.4
qoda Nov 18, 2025
8b3382d
Merge pull request #26 from hacklabza/dependabot/pip/gunicorn-22.0.0
qoda Nov 18, 2025
41d5df1
Merge pull request #31 from hacklabza/dependabot/pip/sqlparse-0.5.0
qoda Nov 18, 2025
74f67da
Merge pull request #30 from hacklabza/dependabot/pip/idna-3.7
qoda Nov 18, 2025
473d65d
Bump djangorestframework from 3.14.0 to 3.15.2
dependabot[bot] Nov 18, 2025
4d99218
Merge pull request #23 from hacklabza/dependabot/pip/djangorestframew…
qoda Nov 18, 2025
2a66f75
Bump black from 22.12.0 to 24.3.0
dependabot[bot] Nov 18, 2025
71c3a1d
Merge pull request #32 from hacklabza/dependabot/pip/black-24.3.0
qoda Nov 18, 2025
2abc8fa
Updated python version and improved weather integration tests
qoda Sep 1, 2026
82b9f36
Added sonoff integration tests
qoda Sep 1, 2026
44a6b3c
Bumped docker file to python 3.13
qoda Sep 1, 2026
a2df218
Fixed github workflow
qoda Sep 1, 2026
d74edac
Improved test coverage for device utils
qoda Sep 1, 2026
2082399
Added new solarman integration
qoda Sep 1, 2026
2d0e117
Added ruff and removed isort flake8 and black
qoda Sep 23, 2026
4df2e2a
Updated all dependancies and upgraded runtime to python 3.13
qoda Sep 23, 2026
a805084
Updated documentation
qoda Sep 23, 2026
a8cc43f
Ran and fixed ruff linting issues
qoda Sep 23, 2026
e40a325
Update postgis versions
qoda Sep 23, 2026
ff27535
Merge pull request #39 from hacklabza/dependancy-updates
qoda Sep 23, 2026
8d4f425
Added field to device to indicate if the firmware is managed
qoda Sep 23, 2026
649d995
Added device migration
qoda Sep 23, 2026
c1abafc
Improved the json widget to mask known secrets when dispalyed in admin
qoda Sep 23, 2026
fa2e794
Added managed firmware flag to device admin
qoda Sep 23, 2026
ec93c69
Added tests for device model signals
qoda Sep 23, 2026
801e1c1
Cleanup env example file
qoda Sep 24, 2026
48f0cb4
Added initial rule utils
qoda Sep 24, 2026
2be42de
Implimented rule runner worker loop
qoda Sep 24, 2026
ebd29ac
Added management command to run rule workers
qoda Sep 24, 2026
0e005ca
Added tests for mqtt and rules managemnt commands
qoda Sep 24, 2026
e148a04
Added tests for rule utils
qoda Sep 24, 2026
6c9fd1e
Added systemd files for running the rules engine management command
qoda Sep 24, 2026
7a4327d
Merge pull request #40 from hacklabza/sonoff-support
qoda Sep 24, 2026
178aac8
Updated documentation to include rules engine setup
qoda Sep 24, 2026
2c26662
Refactored rules engine to handle new devices added to the databse in…
qoda Sep 24, 2026
2504ee0
Merge pull request #41 from hacklabza/sonoff-support
qoda Sep 24, 2026
82cc012
Improved eror handling for managed devices that can't be reached via …
qoda Sep 24, 2026
f0faa09
Allow for devices to share locations
qoda Sep 24, 2026
0013da0
Updated device pre save to createa default config if a device in unma…
qoda Sep 24, 2026
1cf47c8
Refactor sonoff integration to use v2 api
qoda Sep 24, 2026
941fcdb
Fixed conditional evaluation in rules engine
qoda Sep 24, 2026
2093f78
Allow for device pin display config to be blank
qoda Sep 24, 2026
10bb3fa
Improved status reporting for rules with service calls
qoda Sep 24, 2026
730938f
Updated conditional logic to ensure override
qoda Sep 24, 2026
6badc20
Fixed tests
qoda Sep 24, 2026
d5f15db
Updated device config to be a standard property, cached property caus…
qoda Sep 24, 2026
fca184d
Fixed conditions to match device rule engine
qoda Sep 24, 2026
76a7313
Fixed conditions to match device rule engine
qoda Sep 24, 2026
52bd5f8
Added cache to sonoff calls
qoda Sep 29, 2026
2b94957
Update pyproject syntax and moved all config there
qoda Oct 1, 2026
479783d
Allow for sonoff cache timeout to be over-ridden by rule config
qoda Oct 2, 2026
1d37a36
Added support for olarm
qoda Oct 4, 2026
086dfaf
Added cache to olarm integration
qoda Oct 4, 2026
a79574e
Minor refactor and linting
qoda Oct 4, 2026
22336a9
Improved olarm rule
qoda Oct 5, 2026
5ec77e0
Added additional debug logging to rules
qoda Oct 7, 2026
7296708
Improved health endpoint with wifi and battery indicators
qoda Oct 7, 2026
e9ddc22
Moved device status sample size to filters
qoda Oct 7, 2026
24ae2c0
Moved device status sample size to filters
qoda Oct 7, 2026
d2c426c
Added device id to admin detail
qoda Oct 7, 2026
f80cb70
Fixed hanging tests
qoda Oct 8, 2026
20bdca9
Dependency updates
qoda Oct 8, 2026
7ee01e9
Added new rainpoint api integration
qoda Oct 8, 2026
1f3d3fa
Added setting for rainpoint integration
qoda Oct 8, 2026
3ff6650
Added a rule to read rainpoint device statuses
qoda Oct 8, 2026
1a36a83
Merge pull request #42 from hacklabza/rainpoint_integration
qoda Oct 8, 2026
dd477ee
Bumped project version
qoda Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions .coveragerc

This file was deleted.

3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.env
.python-version
.gitignore
53 changes: 52 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,7 +1,58 @@
# Project Environment Variables
IOTSERVER_SECRET_KEY='insecure-secret'
IOTSERVER_CORS_ORIGIN_WHITELIST='http://localhost:3000'
IOTSERVER_OPENWEATHER_URL='https://api.openweathermap.org/data/2.5/onecall'
IOTSERVER_CORS_ALLOW_ALL_ORIGINS='0'

IOTSERVER_POSTGRES_USER='postgres'
IOTSERVER_POSTGRES_PASSWORD='insecure-password'
IOTSERVER_POSTGRES_DBNAME='iotserver'

IOTSERVER_SONOFF_REGION='eu'
IOTSERVER_SONOFF_APP_ID='sonoff-app-id'
IOTSERVER_SONOFF_APP_SECRET='sonoff-app-secret'
IOTSERVER_SONOFF_REDIRECT_URL='http://localhost:8000/integrations/sonoff/callback/'
IOTSERVER_SONOFF_AUTHORIZE_URL='https://c2ccdn.coolkit.cc/oauth/index.html'
IOTSERVER_SONOFF_TOKEN_URL='https://eu-apia.coolkit.cc/v2/user/oauth/token'
IOTSERVER_SONOFF_REFRESH_URL='https://eu-apia.coolkit.cc/v2/user/refresh'
IOTSERVER_SONOFF_DEVICE_URL='https://eu-apia.coolkit.cc/v2/device/thing/status'
IOTSERVER_SONOFF_CACHE_TIMEOUT='300'

IOTSERVER_SOLARMAN_BASE_URL='https://globalapi.solarmanpv.com'
IOTSERVER_SOLARMAN_APP_ID='solarman-app-id'
IOTSERVER_SOLARMAN_APP_SECRET='solarman-app-secret'
IOTSERVER_SOLARMAN_EMAIL='solarman-email@example.com'
IOTSERVER_SOLARMAN_PASSWORD='solarman-password'
IOTSERVER_SOLARMAN_CACHE_TIMEOUT='300'

IOTSERVER_OPENWEATHER_URL='https://api.openweathermap.org/data/3.0/onecall'
IOTSERVER_OPENWEATHER_APIKEY='openweather-key'

IOTSERVER_OLARM_BASE_URL='https://api.olarm.com'
IOTSERVER_OLARM_API_KEY='olarm-api-key'
IOTSERVER_OLARM_DEVICE_ID='olarm-device-id'
IOTSERVER_OLARM_CACHE_TIMEOUT='60'

IOTSERVER_RAINPOINT_EMAIL='rainpoint-api@example.com'
IOTSERVER_RAINPOINT_PASSWORD='rainpoint-password'
IOTSERVER_RAINPOINT_APP_CODE='2'
IOTSERVER_RAINPOINT_AREA_CODE='27'
IOTSERVER_RAINPOINT_HUB_ID='361481'
IOTSERVER_RAINPOINT_RAIN_GAUGE_ADDRESS='1'
IOTSERVER_RAINPOINT_POOL_THERMOMETER_ADDRESS='2'
IOTSERVER_RAINPOINT_TEMPERATURE_SENSOR_ADDRESS='3'
IOTSERVER_RAINPOINT_CACHE_TIMEOUT='60'

IOTSERVER_GOOGLEMAPS_APIKEY='googlemaps-key'

IOTSERVER_WEBREPL_PORT='8266'
IOTSERVER_WEBREPL_PASSWORD='insecure-password'
IOTSERVER_AUTO_SYNC_DEVICE=1

IOTSERVER_DEVICE_HEALTH_URL='http://localhost:8000/health/{identifier}/'

# Build Environment Variables
DOCKER_POSTGIS_IMAGE='kartoza/postgis:15'

# GDAL local path
IOTSERVER_GDAL_LIBRARY_PATH='/path/to/your/libgdal.so'
IOTSERVER_GEOS_LIBRARY_PATH='/path/to/your/libgeos_c.so'
6 changes: 0 additions & 6 deletions .flake8

This file was deleted.

79 changes: 79 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Python test runner

on:
pull_request:
branches:
- '**'
push:
branches:
- master
- develop

jobs:
run_tests:
runs-on: ubuntu-latest

services:
postgres:
image: postgis/postgis:15-3.5
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: test_iotserver
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
- uses: actions/checkout@v4

- name: Set up Python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends gdal-bin libgdal-dev

- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: latest
virtualenvs-create: true
virtualenvs-in-project: true

- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}

- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root

- name: Install project
run: poetry install --no-interaction

- name: Run tests with coverage
env:
IOTSERVER_POSTGRES_DBNAME: test_iotserver
IOTSERVER_POSTGRES_USER: postgres
IOTSERVER_POSTGRES_PASSWORD: postgres
run: poetry run pytest --cov --cov-branch --cov-report=xml

- name: Upload coverage reports
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ celerybeat-schedule
.env
.venv
.keys/
.backup/

# docker
/docker/
9 changes: 0 additions & 9 deletions .isort.cfg

This file was deleted.

21 changes: 6 additions & 15 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,14 @@
repos:

- repo: https://github.com/PyCQA/isort
rev: 5.9.3
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.9
hooks:
- id: isort

- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black

- repo: https://gitlab.com/pycqa/flake8
rev: 3.9.2
hooks:
- id: flake8
additional_dependencies: [flake8-bugbear]
- id: ruff-check
args: [--fix]
- id: ruff-format

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
rev: v4.4.0
hooks:
- id: check-ast
- id: check-added-large-files
Expand Down
1 change: 1 addition & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
brew "openssl"
brew "mosquitto"
brew "postgis"
brew "geos"
brew "gdal"
brew "postgresql"
brew "memcached"
14 changes: 14 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM python:3.13-bookworm

WORKDIR /usr/src/app

RUN apt-get update && apt-get install -y --no-install-recommends postgresql-client gdal-bin libgdal-dev
RUN curl -sSL https://install.python-poetry.org | python3 -

ENV PATH="${PATH}:/root/.local/bin"

COPY . /usr/src/app

RUN poetry config virtualenvs.create false && poetry install --no-interaction --no-ansi

EXPOSE 8000
Loading
Loading