diff --git a/_snippets/common-links.md b/_snippets/common-links.md index 18d2b7f..0a87308 100644 --- a/_snippets/common-links.md +++ b/_snippets/common-links.md @@ -1,3 +1,4 @@ +[archivebox]: /recipes/archivebox/ [autopirate]: /recipes/autopirate/ [authelia]: /ha-docker-swarm/authelia/ [bazarr]: /recipes/autopirate/bazarr/ diff --git a/manuscript/CHANGELOG.md b/manuscript/CHANGELOG.md index 92eaf5b..07b7780 100644 --- a/manuscript/CHANGELOG.md +++ b/manuscript/CHANGELOG.md @@ -8,6 +8,7 @@ hide: Recipe | Description | Date -------------------------|------------------------------------------------------------------------------------------------------------------|-------------- +[Archivebox][archivebox] | Website Archiving service to save websites to view offline | _19 Oct 2021_ [Readarr][readarr] | [Autopirate][autopirate] component to grab and manage eBooks (*think "Sonarr/Radarr for books*") | _18 Oct 2021_ [Paperless-NG][paperless-ng] | Organize, index, search, and view all your documents | _14 Oct 2021_ [RSS-Bridge][rss-bridge] | Consume content from non-open platforms (*Facebook, Instagram, etc*) in your feed reader | _1 Oct 2021_ diff --git a/manuscript/images/archivebox.png b/manuscript/images/archivebox.png new file mode 100644 index 0000000..6645752 Binary files /dev/null and b/manuscript/images/archivebox.png differ diff --git a/manuscript/recipes/archivebox.md b/manuscript/recipes/archivebox.md new file mode 100644 index 0000000..0f39696 --- /dev/null +++ b/manuscript/recipes/archivebox.md @@ -0,0 +1,93 @@ +# Archivebox + + +[ArchiveBox](https://github.com/ArchiveBox/ArchiveBox) is a self-hosted internet archiving solution to collect and save sites you wish to view offline. + +![Archivebox Screenshot](../images/archivebox.png) + + +Features include + +* Uses standard formats such as HTML, JSON, PDF, PNG +* Ability to autosave to [archive.org](https://github.com/ArchiveBox/ArchiveBox/wiki/Configuration#submit_archive_dot_org) +* Supports Scheduled importing +* Supports Realtime importing + + +--8<-- "recipe-standard-ingredients.md" + +## Preparation + +### Setup data locations + +First, we create a directory to hold the data which archivebox will store: + +``` +mkdir /var/data/archivebox +mkdir /var/data/config/archivebox +cd /var/data/config/archivebox +``` + +### Create docker-compose.yml + +Create a docker swarm config file in docker-compose syntax (v3), something like this: + +--8<-- "premix-cta.md" + +```yaml +version: '3.2' + +services: + archivebox: + image: archivebox/archivebox + command: server --quick-init 0.0.0.0:8000 + ports: + - 8000:8000 + networks: + - traefik_public + environment: + - PUID=1000 + - PGID=1000 + - TZ=Pacific/Auckland + - USE_COLOR=True + - SHOW_PROGRESS=False + deploy: + labels: + # traefik common + - traefik.enable=true + - traefik.docker.network=traefik_public + # traefikv1 + - traefik.frontend.rule=Host:archive.example.com + - traefik.port=8000 + # traefikv2 + - "traefik.http.routers.archive.rule=Host(`archive.example.com`)" + - "traefik.http.routers.archive.entrypoints=https" + - "traefik.http.services.archive.loadbalancer.server.port=8000" + volumes: + - /var/data/archivebox:/data + + +networks: + traefik_public: + external: true +``` + + +### Initalizing Archivebox + +Once you have created the docker file you will need to run the following command to configure archivebox and create an account. +`docker run -v /var/data/archivebox:/data -it archivebox/archivebox init --setup` + + +## Serving + +### Launch Archivebox! + +Launch the Archivebox stack by running ```docker stack deploy archivebox -c ``` + + + +[^1]: The inclusion of Archivebox was due to the efforts of @bencey in Discord (Thanks Ben!) + + +--8<-- "recipe-footer.md" \ No newline at end of file diff --git a/manuscript/recipes/paperless-ng.md b/manuscript/recipes/paperless-ng.md index 06cf1cf..9767c03 100644 --- a/manuscript/recipes/paperless-ng.md +++ b/manuscript/recipes/paperless-ng.md @@ -125,7 +125,7 @@ services: - internal db-backup: - image: postgres:latest + image: postgres:13 volumes: - /var/data/paperless/database-dump:/dump - /etc/localtime:/etc/localtime:ro @@ -176,4 +176,4 @@ Head over to the [Paperless documentation](https://paperless-ng.readthedocs.io/e [^1]: Taken directly from [Paperless documentation](https://paperless-ng.readthedocs.io/en/latest) [^2]: This particular stack configuration was chosen because it includes a "real" database in PostgreSQL versus the more lightweight SQLite database. After all, if you go to the trouble of scanning and importing a pile of documents, you want to know the database is robust enough to keep your data safe. ---8<-- "recipe-footer.md" \ No newline at end of file +--8<-- "recipe-footer.md" diff --git a/mkdocs.yml b/mkdocs.yml index 42e761d..257d5df 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,6 +93,7 @@ nav: - Restic: recipes/restic.md - Swarmprom: recipes/swarmprom.md - Recipes: + - Archive Box: recipes/archivebox.md - Bitwarden: recipes/bitwarden.md - Bookstack: recipes/bookstack.md - Calibre-Web: recipes/calibre-web.md