PyInventory/README.rst

382 wiersze
11 KiB
ReStructuredText

===========
PyInventory
===========
Web based management to catalog things including state and location etc. using Python/Django.
2020-10-27 07:31:47 +00:00
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!
2020-12-29 13:29:56 +00:00
+---------------------------------+-----------------------------------------+
| |Build Status on github| | `github.com/jedie/PyInventory/actions`_ |
+---------------------------------+-----------------------------------------+
| |Coverage Status on codecov.io| | `codecov.io/gh/jedie/PyInventory`_ |
+---------------------------------+-----------------------------------------+
.. |Build Status on github| image:: https://github.com/jedie/PyInventory/workflows/test/badge.svg?branch=master
.. _github.com/jedie/PyInventory/actions: https://github.com/jedie/PyInventory/actions
.. |Coverage Status on codecov.io| image:: https://codecov.io/gh/jedie/PyInventory/branch/master/graph/badge.svg
.. _codecov.io/gh/jedie/PyInventory: https://codecov.io/gh/jedie/PyInventory
2020-10-15 16:03:57 +00:00
-----
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
* 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... ;)
2020-11-13 20:52:19 +00:00
-----------------
Project structure
-----------------
2020-10-27 07:31:47 +00:00
2020-11-13 20:52:19 +00:00
There are two main directories:
2020-10-27 07:31:47 +00:00
2020-11-13 20:52:19 +00:00
+---------------------+--------------------------------------------+
| directory | description |
+=====================+============================================+
| **`/src/`_** | The main PyInventory source code |
+---------------------+--------------------------------------------+
| **`/deployment/`_** | deploy PyInventory for production use case |
+---------------------+--------------------------------------------+
2020-10-27 07:31:47 +00:00
2020-11-13 20:52:19 +00:00
.. _/src/: https://github.com/jedie/PyInventory/tree/master/src
.. _/deployment/: https://github.com/jedie/PyInventory/tree/master/deployment
2020-10-27 07:31:47 +00:00
-------
install
-------
2020-12-09 10:52:41 +00:00
There exists these kind of installation/usage:
2020-10-20 15:38:08 +00:00
2020-10-27 07:31:47 +00:00
* local development installation using poetry
2020-10-20 15:38:08 +00:00
2020-12-09 10:52:41 +00:00
* production use with docker-compose on a root server
2020-12-09 19:16:10 +00:00
* Install as `YunoHost <https://yunohost.org>`_ App via `pyinventory_ynh <https://github.com/YunoHost-Apps/pyinventory_ynh>`_
2020-10-20 15:38:08 +00:00
2020-11-13 20:52:19 +00:00
This README contains only the information about local development installation.
2020-10-27 07:31:47 +00:00
2020-11-13 20:52:19 +00:00
Read `/deployment/README <https://github.com/jedie/PyInventory/tree/master/deployment#readme>`_ for instruction to install PyInventory on a root server.
2020-10-24 15:15:05 +00:00
2021-04-05 13:23:32 +00:00
local development installation
==============================
e.g.:
::
2021-04-05 13:23:32 +00:00
# Clone project (Use your fork SSH url!):
~$ git clone https://github.com/jedie/PyInventory.git
2021-04-05 13:23:32 +00:00
~$ cd PyInventory
~/PyInventory$ ./devshell.py
2020-10-20 15:38:08 +00:00
2021-04-05 13:23:32 +00:00
Helpful for writing and debugging unittests is to run a local test server.
e.g.:
2020-10-20 15:38:08 +00:00
::
2021-04-05 13:23:32 +00:00
~/PyInventory$ ./devshell.py run_testserver
2020-10-20 15:38:08 +00:00
2020-10-24 12:31:45 +00:00
The web page is available via: ``http://127.0.0.1:8000/``
2021-04-05 13:23:32 +00:00
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
2020-12-29 13:20:37 +00:00
The web page is available via: ``https://localhost/``
2020-10-17 17:38:06 +00:00
-----------
Screenshots
-----------
|PyInventory v0.2.0 screenshot 1.png|
2020-10-17 17:38:06 +00:00
.. |PyInventory v0.2.0 screenshot 1.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.2.0 screenshot 1.png
2020-10-17 17:38:06 +00:00
----
2020-10-17 20:26:28 +00:00
|PyInventory v0.1.0 screenshot 2.png|
2020-10-17 17:38:06 +00:00
2020-10-17 20:26:28 +00:00
.. |PyInventory v0.1.0 screenshot 2.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 2.png
2020-10-17 17:38:06 +00:00
----
2020-10-17 20:26:28 +00:00
|PyInventory v0.1.0 screenshot 3.png|
2020-10-17 17:38:06 +00:00
2020-10-17 20:26:28 +00:00
.. |PyInventory v0.1.0 screenshot 3.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 3.png
2020-10-17 17:38:06 +00:00
----
2020-10-27 07:31:47 +00:00
------------------
Multi user support
------------------
2020-10-24 15:15:05 +00:00
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.:
|normal user example|
.. |normal user example| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory normal user example.png
------------------------------
Backwards-incompatible changes
------------------------------
2020-11-23 16:45:37 +00:00
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.
2020-11-14 11:17:38 +00:00
v0.5.0
======
2020-11-14 10:56:55 +00:00
Git branches "master" and "deployment" was merged into one.
Files are separated into: "/src/" and "/development/"
-------
history
-------
* `compare v0.9.0...master <https://github.com/jedie/PyInventory/compare/v0.9.0...master>`_ **dev**
2021-04-28 15:03:24 +00:00
* NEW: It's not possible to upload file(s) to item.
* Add a auto login if Django dev. server is used.
2021-01-19 18:10:25 +00:00
* tbc
2021-04-11 13:58:19 +00:00
* `v0.9.0 - 11.04.2021 <https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0>`_
* Use `https://github.com/jedie/dev-shell <https://github.com/jedie/dev-shell>`_ for development
* `v0.8.4 - 19.01.2021 <https://github.com/jedie/PyInventory/compare/v0.8.3...v0.8.4>`_
2020-12-09 19:16:10 +00:00
* Search items in change list by "kind" and "tags", too
2021-01-19 18:10:25 +00:00
* update requirements
2020-12-09 19:16:10 +00:00
2021-04-11 13:58:19 +00:00
* `v0.8.3 - 29.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.2...v0.8.3>`_
2020-12-29 13:20:37 +00:00
* update requirements
* remove colorama from direct dependencies
* Small project setup changes
2021-04-11 13:58:19 +00:00
* `v0.8.2 - 20.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.1...v0.8.2>`_
2020-12-20 17:53:23 +00:00
* Bugfix `#33 <https://github.com/jedie/PyInventory/issues/33>`_: Upload images to new created Items
2021-04-11 13:58:19 +00:00
* `v0.8.1 - 09.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.0...v0.8.1>`_
2020-11-13 08:10:00 +00:00
2020-12-09 10:52:41 +00:00
* Fix migration: Don't create "/media/migrate.log" if there is nothing to migrate
* Fix admin redirect by using the url pattern name
2020-12-09 19:16:10 +00:00
* YunoHost app package created
* update requirements
2020-11-13 08:10:00 +00:00
2021-04-11 13:58:19 +00:00
* `v0.8.0 - 06.12.2020 <https://github.com/jedie/PyInventory/compare/v0.7.0...v0.8.0>`_
2020-12-06 18:20:36 +00:00
* Outsource the "MEDIA file serve" part into `django.tools.serve_media_app <https://github.com/jedie/django-tools/tree/master/django_tools/serve_media_app#readme>`_
2021-04-11 13:58:19 +00:00
* `v0.7.0 - 23.11.2020 <https://github.com/jedie/PyInventory/compare/v0.6.0...v0.7.0>`_
2020-11-23 16:45:37 +00:00
* 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
2021-04-11 13:58:19 +00:00
* `v0.6.0 - 15.11.2020 <https://github.com/jedie/PyInventory/compare/v0.5.0...v0.6.0>`_
2020-11-14 10:56:55 +00:00
2020-11-15 13:44:04 +00:00
* User can store images to every item: The image can only be accessed by the same user.
2021-04-11 13:58:19 +00:00
* `v0.5.0 - 14.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.2...v0.5.0>`_
2020-11-15 13:44:04 +00:00
* Merge separate git branches into one: "/src/" and "/development/" `#19 <https://github.com/jedie/PyInventory/issues/19>`_
2020-11-14 10:56:55 +00:00
2021-04-11 13:58:19 +00:00
* `v0.4.2 - 13.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.1...v0.4.2>`_
2020-11-11 18:47:38 +00:00
* Serve static files by Caddy
* Setup CKEditor file uploads: Store files into random sub directory
* reduce CKEditor plugins
2021-04-11 13:58:19 +00:00
* `v0.4.1 - 2.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.0...v0.4.1>`_
2020-11-02 08:13:27 +00:00
* Small bugfixes
2021-04-11 13:58:19 +00:00
* `v0.4.0 - 1.11.2020 <https://github.com/jedie/PyInventory/compare/v0.3.2...v0.4.0>`_
2020-11-01 19:30:43 +00:00
* 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
2021-04-11 13:58:19 +00:00
* `v0.3.2 - 26.10.2020 <https://github.com/jedie/PyInventory/compare/v0.3.0...v0.3.2>`_
* Bugfix missing translations
2021-04-11 13:58:19 +00:00
* `v0.3.0 - 26.10.2020 <https://github.com/jedie/PyInventory/compare/v0.2.0...v0.3.0>`_
2020-10-26 16:57:16 +00:00
* setup production usage:
* Use `caddy server <https://caddyserver.com/>`_ 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
2020-10-26 16:57:16 +00:00
* Bugfix init: move "setup user group" from checks into "post migrate" signal handler
* Bugfix for using manage commands ``dumpdata`` and ``loaddata``
2021-04-11 13:58:19 +00:00
* `v0.2.0 - 24.10.2020 <https://github.com/jedie/PyInventory/compare/v0.1.0...v0.2.0>`_
* Simplify item change list by nested item
* Activate Django-Import/Export
* Implement multi user usage
* Add Django-dbbackup
* Add docker-compose usage
2021-04-11 13:58:19 +00:00
* `v0.1.0 - 17.10.2020 <https://github.com/jedie/PyInventory/compare/v0.0.1...v0.1.0>`_
2020-10-17 17:38:06 +00:00
* 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 | `http://github.com/jedie/PyInventory`_ |
+----------+------------------------------------------+
| PyPi | `https://pypi.org/project/PyInventory/`_ |
+----------+------------------------------------------+
.. _http://github.com/jedie/PyInventory: http://github.com/jedie/PyInventory
.. _https://pypi.org/project/PyInventory/: https://pypi.org/project/PyInventory/
2020-10-24 12:15:29 +00:00
Discuss here:
* `vogons.org Forum Thread (en) <https://www.vogons.org/viewtopic.php?f=5&t=77285>`_
2020-10-27 07:17:46 +00:00
* `Python-Forum (de) <https://www.python-forum.de/viewtopic.php?f=9&t=50024>`_
2020-10-24 12:15:29 +00:00
* `VzEkC e. V. Forum Thread (de) <https://forum.classic-computing.de/forum/index.php?thread/21738-opensource-projekt-pyinventory-web-basierte-verwaltung-um-seine-dinge-zu-katalog/>`_
* `dosreloaded.de Forum Thread (de) <https://dosreloaded.de/forum/index.php?thread/3702-pyinventory-retro-sammlung-katalogisieren/>`_
--------
donation
--------
* `paypal.me/JensDiemer <https://www.paypal.me/JensDiemer>`_
* `Flattr This! <https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2FPyInventory%2F>`_
* Send `Bitcoins <http://www.bitcoin.org/>`_ to `1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F <https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F>`_
------------
2021-04-28 15:03:24 +00:00
``Note: this file is generated from README.creole 2021-04-28 19:03:46 with "python-creole"``