Web based management to catalog things including state and location etc. using Python/Django.
Project description
Web based management to catalog things including state and location etc. using Python/Django.
The project is in an early stage of development. Some things are already implemented and usable. But there is still a lot to do.
Pull requests welcome!
about
The focus of this project is on the management of retro computing hardware.
Plan:
Web-based
Multiuser ready
Chaotic warehousing
Grouped “Storage”: Graphics card is in computer XY
Data structure kept as general as possible
You should be able to add the following to the items:
Storage location
State
Pictures and Files
URLs
receiving and delivering (when, from whom, at what price, etc.)
Information: Publicly visible yes/no
A public list of existing items (think about it, you can set in your profile if you want to)
administration a wish & exchange list
any many more… ;)
Project structure
There are two main directories:
directory |
description |
---|---|
`/src/`_ |
The main PyInventory source code |
`/deployment/`_ |
deploy PyInventory for production use case |
install
There exists these kind of installation/usage:
local development installation using poetry
production use with docker-compose on a root server
Install as YunoHost App via pyinventory_ynh
This README contains only the information about local development installation.
Read /deployment/README for instruction to install PyInventory on a root server.
local development installation
e.g.:
# Clone project (Use your fork SSH url!): ~$ git clone https://github.com/jedie/PyInventory.git ~$ cd PyInventory ~/PyInventory$ ./devshell.py
Helpful for writing and debugging unittests is to run a local test server. e.g.:
~/PyInventory$ ./devshell.py run_testserver
The web page is available via: http://127.0.0.1:8000/
You can also pass a other port number or ipaddr:port combination. See: ./devshell.py run_testserver --help
Call manage commands from test project, e.g.:
~/PyInventory$ ./devshell.py manage --help
local docker dev run
You can run the deployment docker containers with current source code with:
~/PyInventory$ make run-docker-dev-server
Just hit Cntl-C to stop the containers
The web page is available via: https://localhost/
Screenshots
Multi user support
PyInventory supports multiple users. The idea:
Every normal user sees only his own created database entries
All users used the Django admin
Note: All created Tags are shared for all existing users!
So setup a normal user:
Set “Staff status”
Unset “Superuser status”
Add user to “normal_user” group
Don’t add any additional permissions
e.g.:
Backwards-incompatible changes
v0.7.0
Docker-Compose usage: The MEDIA files was not stored on a docker volumes.
You should backup rhe media files before update the containers!
e.g.:
~/PyInventory/deployment$ make shell_inventory root@inventory:/django# cp -Rfv /media/ /django_volumes/media/
The files are stored locally here:
~/PyInventory/deployment$ ls -la volumes/django/media/
Now, update the containers and copy the files back.
v0.5.0
Git branches “master” and “deployment” was merged into one. Files are separated into: “/src/” and “/development/”
history
-
tbc
-
Group item: default “automatic” mode and can be disabled by filter action
-
Pin psycopg < 2.9 because of https://github.com/psycopg/psycopg2/issues/1293
-
Optimize “items” changelist queries
Update requirements
Expand run_testserver command and recognize address and port argument
-
Update requirements
NEW: Besides images, it’s now possible to add file(s) to items, too.
Add a auto login if Django dev. server is used.
-
Use https://github.com/jedie/dev-shell for development
-
Search items in change list by “kind” and “tags”, too
update requirements
-
update requirements
remove colorama from direct dependencies
Small project setup changes
-
Bugfix #33: Upload images to new created Items
-
Fix migration: Don’t create “/media/migrate.log” if there is nothing to migrate
Fix admin redirect by using the url pattern name
YunoHost app package created
update requirements
-
Outsource the “MEDIA file serve” part into django.tools.serve_media_app
-
Change deployment setup:
Replace uwsgi with gunicorn
make deploy setup more generic by renaming “inventory” to “django”
Bugfix MEDIA path: store the files on a docker volumes
run app server as normal user and not root
pull all docker images before build
-
User can store images to every item: The image can only be accessed by the same user.
-
Merge separate git branches into one: “/src/” and “/development/” #19
-
Serve static files by Caddy
Setup CKEditor file uploads: Store files into random sub directory
reduce CKEditor plugins
-
Small bugfixes
-
Move docker stuff and production use information into separate git branch
Add django-axes: keeping track of suspicious logins and brute-force attack blocking
Add django-processinfo: collect information about the running server processes
-
Bugfix missing translations
-
setup production usage:
Use caddy server as reverse proxy
Use uWSGI as application server
autogenerate secret.txt file for settings.SECRET_KEY
Fix settings
split settings for local development and production use
Bugfix init: move “setup user group” from checks into “post migrate” signal handler
Bugfix for using manage commands dumpdata and loaddata
-
Simplify item change list by nested item
Activate Django-Import/Export
Implement multi user usage
Add Django-dbbackup
Add docker-compose usage
-
Enhance models, admin and finish project setup
v0.0.1 - 14.10.2020
Just create a pre-alpha release to save the PyPi package name ;)
links
Homepage |
|
PyPi |
Discuss here:
donation
Note: this file is generated from README.creole 2021-09-29 19:44:56 with "python-creole"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file PyInventory-0.10.0.tar.gz
.
File metadata
- Download URL: PyInventory-0.10.0.tar.gz
- Upload date:
- Size: 58.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45009e0fb12be202c681ffb19f074c5b49f7228939252f791adeaedc35537529 |
|
MD5 | e03782e8286df1fa06cbbaccc55fd469 |
|
BLAKE2b-256 | a6a16680a7a63ff29b72babfc42800eabe62f0e9b017e8598046d0c193a86780 |
File details
Details for the file PyInventory-0.10.0-py3-none-any.whl
.
File metadata
- Download URL: PyInventory-0.10.0-py3-none-any.whl
- Upload date:
- Size: 89.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 831906efeed6bcef578079b3d7c00873a75f3ed69c27eabf51b3306ba32cc960 |
|
MD5 | 4e8046c084ea04b3157089893b354ece |
|
BLAKE2b-256 | 2e1ecfd93d9a32d665d29093d85dff81db50f2134e906a4a5ee1a6caa5e99cbd |