digimarks ========= |PyPI version| |PyPI license| |Code health| |Codacy| Simple bookmarking service, using a SQLite database to store bookmarks, supporting tags and automatic title fetching. Installation ------------ From PyPI ~~~~~~~~~ Assuming you already are inside a virtualenv: .. code-block:: bash pip install digimarks From Git ~~~~~~~~ Create a new virtualenv (if you are not already in one) and install the necessary packages: .. code-block:: bash git clone https://github.com/aquatix/digimarks.git cd digimarks mkvirtualenv digimarks # or whatever project you are working on pip install -r requirements.txt Migrating from version 1 ------------------------ To be able to use the new database schema's, you will need to migrate your existing ``bookmarks.db`` to one under the control of the ``alembic`` migrations tool. To do so, start with making a backup of this ``bookmarks.db`` file to a safe place. Then, stamp the initial migration into the database, and migrate to the latest version: .. code-block:: bash alembic stamp 115bcd2e1a38 alembic upgrade head Usage / example configuration ----------------------------- OUT OF DATE! Copy ``settings.py`` from example_config to the parent directory and configure to your needs (*at the least* change the value of `SYSTEMKEY`). Do not forget to fill in the `MASHAPE_API_KEY` value, which you ``can request on the RapidAPI website `_. Run digimarks as a service under nginx or apache and call the appropriate url's when wanted. Url's are of the form ``https://marks.example.com//`` digimarks can also be run from the command line: ``uvicorn digimarks:app --reload`` Be sure to export/set the ``SECRETKEY`` environment variable before running, it's needed for some management URI's. Run ``gunicorn -k uvicorn.workers.UvicornWorker`` for production. For an example of how to set up a server `see this article `_ with configuration for nginx, uvicorn, systemd, security and such. The RQ background worker can be run from the command line: ``rq worker --with-scheduler`` Url's are of the form https://hook.example.com/app// API documentation is auto-generated, and can be browsed at https://hook.example.com/docs Bookmarklet ~~~~~~~~~~~ To easily save a link from your browser, open its bookmark manager and create a new bookmark with as url: .. code-block:: javascript javascript:location.href='http://marks.example.com/1234567890abcdef/add?url='+encodeURIComponent(location.href); Creating a new user ------------------- After having set up the ```settings.py``` as under Usage, you can add a new user, by going to this path on your digimarks server: //adduser where `secretkey` is the value set in settings.SYSTEMKEY digimarks will then redirect to the bookmarks overview page of the new user. Please remember the user key (the hash in the url), as it will not be visible otherwise in the interface. If you for whatever reason would lose this user key, just either look on the console (or webserver logs) where the list of available user keys is printed on digimarks startup, or open bookmarks.db with a SQLite editor. Server configuration ~~~~~~~~~~~~~~~~~~~~ * `systemd for digimarks API`_ which uses the `gunicorn config`_ * `nginx for digimarks API`_ * `more config`_ What's new? ----------- See the `Changelog`_. Attributions ------------ 'M' favicon by `Freepik`_. .. _digimarks: https://github.com/aquatix/digimarks .. |PyPI version| image:: https://img.shields.io/pypi/v/digimarks.svg :target: https://pypi.python.org/pypi/digimarks/ .. |PyPI license| image:: https://img.shields.io/github/license/aquatix/digimarks.svg :target: https://pypi.python.org/pypi/digimarks/ .. |Code health| image:: https://landscape.io/github/aquatix/digimarks/master/landscape.svg?style=flat :target: https://landscape.io/github/aquatix/digimarks/master :alt: Code Health .. |Codacy| image:: https://api.codacy.com/project/badge/Grade/9a34319d917b43219a29e59e9ac75e3b :alt: Codacy Badge :target: https://app.codacy.com/app/aquatix/digimarks?utm_source=github.com&utm_medium=referral&utm_content=aquatix/digimarks&utm_campaign=badger .. _hook settings: https://github.com/aquatix/digimarks/blob/master/example_config/examples.yaml .. _vhost for Apache2.4: https://github.com/aquatix/digimarks/blob/master/example_config/apache_vhost.conf .. _uwsgi.ini: https://github.com/aquatix/digimarks/blob/master/example_config/uwsgi.ini .. _Changelog: https://github.com/aquatix/digimarks/blob/master/CHANGELOG.md .. _Freepik: http://www.flaticon.com/free-icon/letter-m_2041 .. _systemd for digimarks API: https://github.com/aquatix/digimarks/blob/master/example_config/systemd/digimarks.service .. _gunicorn config: https://github.com/aquatix/digimarks/blob/master/example_config/gunicorn_digimarks_conf.py .. _more config: https://github.com/aquatix/digimarks/tree/master/example_config