diff --git a/Pipfile b/Pipfile
deleted file mode 100644
index e44386b..0000000
--- a/Pipfile
+++ /dev/null
@@ -1,18 +0,0 @@
-[[source]]
-url = "https://pypi.org/simple"
-verify_ssl = true
-name = "pypi"
-
-[packages]
-asyncio = "*"
-metno-locationforecast = "*"
-geopy = "*"
-redis = "*"
-pysolar = "*"
-timezonefinder = "*"
-pytz = "*"
-
-[dev-packages]
-
-[requires]
-python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
deleted file mode 100644
index 52a9012..0000000
--- a/Pipfile.lock
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "_meta": {
- "hash": {
- "sha256": "8c39bcbdd624ca60507f9b9ac43a72f42c862c42561c6aef7ec6d76a2d987002"
- },
- "pipfile-spec": 6,
- "requires": {
- "python_version": "3.9"
- },
- "sources": [
- {
- "name": "pypi",
- "url": "https://pypi.org/simple",
- "verify_ssl": true
- }
- ]
- },
- "default": {
- "asyncio": {
- "hashes": [
- "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41",
- "sha256:b62c9157d36187eca799c378e572c969f0da87cd5fc42ca372d92cdb06e7e1de",
- "sha256:c46a87b48213d7464f22d9a497b9eef8c1928b68320a2fa94240f969f6fec08c",
- "sha256:c4d18b22701821de07bd6aea8b53d21449ec0ec5680645e5317062ea21817d2d"
- ],
- "index": "pypi",
- "version": "==3.4.3"
- },
- "certifi": {
- "hashes": [
- "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee",
- "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"
- ],
- "version": "==2021.5.30"
- },
- "chardet": {
- "hashes": [
- "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
- "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
- ],
- "version": "==3.0.4"
- },
- "geographiclib": {
- "hashes": [
- "sha256:8f441c527b0b8a26cd96c965565ff0513d1e4d9952b704bf449409e5015c77b7",
- "sha256:ac400d672b8954b0306bca890b088bb8ba2a757dc8133cca0b878f34b33b2740"
- ],
- "version": "==1.52"
- },
- "geopy": {
- "hashes": [
- "sha256:4db8a2b79a2b3358a7d020ea195be639251a831a1b429c0d1b20c9f00c67c788",
- "sha256:892b219413e7955587b029949af3a1949c6fbac9d5ad17b79d850718f6a9550f"
- ],
- "index": "pypi",
- "version": "==2.1.0"
- },
- "idna": {
- "hashes": [
- "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e",
- "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16"
- ],
- "version": "==2.7"
- },
- "metno-locationforecast": {
- "hashes": [
- "sha256:03b140e1970bab945416d79769974d9f668775755419e0a26dd49cc6ee30fc37",
- "sha256:1e7f879d68843a7e31ad96e9ea7a337be2cdd7070bd109db9c1ac423796df9dd"
- ],
- "index": "pypi",
- "version": "==1.0.0"
- },
- "numpy": {
- "hashes": [
- "sha256:1a784e8ff7ea2a32e393cc53eb0003eca1597c7ca628227e34ce34eb11645a0e",
- "sha256:2ba579dde0563f47021dcd652253103d6fd66165b18011dce1a0609215b2791e",
- "sha256:3537b967b350ad17633b35c2f4b1a1bbd258c018910b518c30b48c8e41272717",
- "sha256:3c40e6b860220ed862e8097b8f81c9af6d7405b723f4a7af24a267b46f90e461",
- "sha256:598fe100b2948465cf3ed64b1a326424b5e4be2670552066e17dfaa67246011d",
- "sha256:620732f42259eb2c4642761bd324462a01cdd13dd111740ce3d344992dd8492f",
- "sha256:709884863def34d72b183d074d8ba5cfe042bc3ff8898f1ffad0209161caaa99",
- "sha256:75579acbadbf74e3afd1153da6177f846212ea2a0cc77de53523ae02c9256513",
- "sha256:7c55407f739f0bfcec67d0df49103f9333edc870061358ac8a8c9e37ea02fcd2",
- "sha256:a1f2fb2da242568af0271455b89aee0f71e4e032086ee2b4c5098945d0e11cf6",
- "sha256:a290989cd671cd0605e9c91a70e6df660f73ae87484218e8285c6522d29f6e38",
- "sha256:ac4fd578322842dbda8d968e3962e9f22e862b6ec6e3378e7415625915e2da4d",
- "sha256:ad09f55cc95ed8d80d8ab2052f78cc21cb231764de73e229140d81ff49d8145e",
- "sha256:b9205711e5440954f861ceeea8f1b415d7dd15214add2e878b4d1cf2bcb1a914",
- "sha256:bba474a87496d96e61461f7306fba2ebba127bed7836212c360f144d1e72ac54",
- "sha256:bebab3eaf0641bba26039fb0b2c5bf9b99407924b53b1ea86e03c32c64ef5aef",
- "sha256:cc367c86eb87e5b7c9592935620f22d13b090c609f1b27e49600cd033b529f54",
- "sha256:ccc6c650f8700ce1e3a77668bb7c43e45c20ac06ae00d22bdf6760b38958c883",
- "sha256:cf680682ad0a3bef56dae200dbcbac2d57294a73e5b0f9864955e7dd7c2c2491",
- "sha256:d2910d0a075caed95de1a605df00ee03b599de5419d0b95d55342e9a33ad1fb3",
- "sha256:d5caa946a9f55511e76446e170bdad1d12d6b54e17a2afe7b189112ed4412bb8",
- "sha256:d89b0dc7f005090e32bb4f9bf796e1dcca6b52243caf1803fdd2b748d8561f63",
- "sha256:d95d16204cd51ff1a1c8d5f9958ce90ae190be81d348b514f9be39f878b8044a",
- "sha256:e4d5a86a5257843a18fb1220c5f1c199532bc5d24e849ed4b0289fb59fbd4d8f",
- "sha256:e58ddb53a7b4959932f5582ac455ff90dcb05fac3f8dcc8079498d43afbbde6c",
- "sha256:e80fe25cba41c124d04c662f33f6364909b985f2eb5998aaa5ae4b9587242cce",
- "sha256:eda2829af498946c59d8585a9fd74da3f810866e05f8df03a86f70079c7531dd",
- "sha256:fd0a359c1c17f00cb37de2969984a74320970e0ceef4808c32e00773b06649d9"
- ],
- "version": "==1.21.0"
- },
- "pysolar": {
- "hashes": [
- "sha256:101e0bc40ed14c1b46b5490dd6253f7e85b584d5c21066a341704cdf1004b250",
- "sha256:6015e5e5691f3fc3eafc67881b1e767fc204a4d23546f80558eccd5b23ad6ec2"
- ],
- "index": "pypi",
- "version": "==0.9"
- },
- "pytz": {
- "hashes": [
- "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da",
- "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"
- ],
- "index": "pypi",
- "version": "==2021.1"
- },
- "redis": {
- "hashes": [
- "sha256:0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2",
- "sha256:432b788c4530cfe16d8d943a09d40ca6c16149727e4afe8c2c9d5580c59d9f24"
- ],
- "index": "pypi",
- "version": "==3.5.3"
- },
- "requests": {
- "hashes": [
- "sha256:65b3a120e4329e33c9889db89c80976c5272f56ea92d3e74da8a463992e3ff54",
- "sha256:ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263"
- ],
- "version": "==2.20.1"
- },
- "timezonefinder": {
- "hashes": [
- "sha256:4545533086eb25cd7ba10b97785059acbababf4577ab1b4d5c2ab56642eadfea",
- "sha256:a374570295a8dbd923630ce85f754e52578e288cb0a9cf575834415e84758352"
- ],
- "index": "pypi",
- "version": "==5.2.0"
- },
- "urllib3": {
- "hashes": [
- "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4",
- "sha256:a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb"
- ],
- "version": "==1.24.3"
- }
- },
- "develop": {}
-}
diff --git a/README.md b/README.md
index d090fff..f80638a 100644
--- a/README.md
+++ b/README.md
@@ -6,13 +6,15 @@ An ascii version of Yr.no's meteogram
* redis for caching location lookups.
@@ -52,18 +53,16 @@ Contributions from:
*
*
-## Server install
+## Server install or running locally
-User docker compose or:
+User docker compose:
-* use pipenv for python and dependencies.
-* Redis server, set to drop stuff when full.
-* Periodically clean old files in data/
+* `docker compose up`
## Testing
- - python3 -m unittest discover -v -p test/__init__.py
- - Run a local redis for development and testing: `docker run -it --rm -p 6379:6379 redis`
+ - create a venv and install tox
+ - Run `tox`
## More