Archivy is a self-hosted knowledge repository that allows you to safely preserve useful content that contributes to your knowledge bank.
Features:
- If you add bookmarks, their webpages contents' will be saved to ensure that you will always have access to it, in sync with the idea of digital preservation.
- Allows you to sync up with Pocket to gather bookmarks from there too.
- Everything is a file! For ease of access and editing, all the content is stored in markdown files with yaml front matter.
- Extensible search with Elasticsearch and its Query DSL
Upcoming:
- Integrations with HN, Reddit, and many more.
- Add submodules for digital identity so archivy syncs to your hn upvoted posts, reddit saved, etc...
- Option to compile data to a static site that can be deployed.
- Dark theme
- UI for grouping by tag and use NLP to automatically generate connections between posts
- Make sure your system has Python and pip installed.
- Install the python package with
pip install archivy
- There you go! You should be able to start the app by running
archivy
in your terminal.
Archivy uses environment variables for its configuration:
Variable | Default | Description |
---|---|---|
ARCHIVY_DATA_DIR |
System-dependant, see below | Directory in which data will be saved |
ELASTICSEARCH_ENABLED |
0 | Enable Elasticsearch integration |
ELASTICSEARCH_URL |
http://localhost:9200 | Url to the elasticsearch server |
ARCHIVY_DATA_DIR
by default will be set by the
appdirs python library:
On Linux systems, it follows the XDG
specification:
~/.local/share/archivy
See the docker
branch for details on setting things up with docker.
Archivy uses ElasticSearch to provide efficient full-text search.
Instructions to install and run the service are provided here.
Append these two lines to your elasticsearch.yml config file:
http.cors.enabled: true
http.cors.allow-origin: "http://localhost:5000"
Run archivy like this:
ELASTICSEARCH_ENABLED=1 archivy
If you're interested in developing and improving Archivy, please join our community discord server.
Feel free to open issues if you encounter bugs, have any ideas / feature requests and use the discord server for more casual discussion.