Readable for decades
+Snapshots are stored as ordinary files and folders, with metadata in SQLite and JSON. You can browse the collection without depending on a hosted service.
+diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 751f71aa..73965d37 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,63 +1,39 @@ -# Simple workflow for deploying static content to GitHub Pages -name: Deploy static content to Pages +name: Deploy GitHub Pages on: - # Runs on pushes targeting the default branch push: - branches: ["dev"] - - # Allows you to run this workflow manually from the Actions tab + branches: + - dev workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: - group: "pages" - cancel-in-progress: false + group: pages + cancel-in-progress: true jobs: - # Single deploy job since we're just deploying deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - - name: Checkout uses: actions/checkout@v4 with: - submodules: true fetch-depth: 1 - - name: Copy README.md into place - run: | - rm -f ./website/README.md - cp ./README.md ./website/README.md + - name: Setup Pages uses: actions/configure-pages@v5 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./website - destination: ./_site + - name: Upload artifact uses: actions/upload-pages-artifact@v3 - - # - name: Checkout - # uses: actions/checkout@v4 - # - name: Setup Pages - # uses: actions/configure-pages@v5 - # - name: Upload artifact - # uses: actions/upload-pages-artifact@v3 - # with: - # # Upload entire repository - # path: './website' + with: + path: ./publicsite - name: Deploy to GitHub Pages id: deployment diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml deleted file mode 100644 index 0c6fb568..00000000 --- a/.github/workflows/jekyll-gh-pages.yml +++ /dev/null @@ -1,58 +0,0 @@ -# Sample workflow for building and deploying a Jekyll site to GitHub Pages -name: Build GitHub Pages website - -on: - # Runs on pushes targeting the default branch - push: - branches: ["dev"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: true - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: true - fetch-depth: 1 - - name: Copy README.md into place - run: | - rm ./website/README.md - cp ./README.md ./website/README.md - - name: Setup Pages - uses: actions/configure-pages@v5 - - name: Build with Jekyll - uses: actions/jekyll-build-pages@v1 - with: - source: ./website - destination: ./_site - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/publicsite/.nojekyll b/publicsite/.nojekyll new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/publicsite/.nojekyll @@ -0,0 +1 @@ + diff --git a/website/CNAME b/publicsite/CNAME similarity index 100% rename from website/CNAME rename to publicsite/CNAME diff --git a/website/icon.png b/publicsite/icon.png similarity index 100% rename from website/icon.png rename to publicsite/icon.png diff --git a/publicsite/index.html b/publicsite/index.html new file mode 100644 index 00000000..035faa51 --- /dev/null +++ b/publicsite/index.html @@ -0,0 +1,275 @@ + + +
+ + + +Open-source self-hosted web archiving
+ArchiveBox saves websites, bookmarks, RSS feeds, social posts, media, source code, and research material in durable files like HTML, PDF, PNG, TXT, JSON, WARC, MP4, and SQLite.
+ + +mkdir -p ~/archivebox/data && cd ~/archivebox
+curl -fsSL 'https://docker-compose.archivebox.io' > docker-compose.yml
+docker compose run archivebox init --install
+docker compose up
+ Why ArchiveBox
+Snapshots are stored as ordinary files and folders, with metadata in SQLite and JSON. You can browse the collection without depending on a hosted service.
+ArchiveBox can save rendered HTML, screenshots, PDFs, WARC files, article text, headers, favicons, media, subtitles, and source repositories.
+Import one URL, pipe text into the CLI, upload exported bookmarks, or schedule recurring pulls from RSS feeds and other text-based source lists.
+Run it as a Docker web app, use one-off CLI commands, or automate with APIs while keeping private and public material under your own policy.
+Who it is for
+Save bookmarks, browser history, RSS feeds, social media, form content, videos, podcasts, music, photos, and personal knowledge collections.
+Capture web pages, articles, source material, and public records while preserving reviewable copies outside of volatile platforms.
+Support OSINT, social media research, AI-powered research agents, libraries, governments, and collection-building teams.
+Recommended install
+Docker Compose is the recommended ArchiveBox setup for the easiest install and update path, better isolation, and bundled archiving dependencies like Chrome, wget, yt-dlp, SingleFile, and readability tools.
+ +mkdir -p ~/archivebox/data && cd ~/archivebox
+ curl -fsSL 'https://docker-compose.archivebox.io' > docker-compose.yml
+ docker compose run archivebox init --install
+docker compose up
+ docker compose run archivebox add 'https://example.com'
+ ArchiveBox can also run with plain Docker, pip, brew, deb packages, or the optional setup script. Docker Compose remains the default recommendation, especially when you want bundled dependencies and clean upgrades.
+ +Inputs and outputs
+Archive one URL at a time or schedule imports from bookmarks, browser history, RSS, JSON, CSV, TXT, SQL, HTML, Markdown, Pocket, Pinboard, Instapaper, Shaarli, Wallabag, and more.
+Each snapshot can include original HTML, rendered single-file HTML, PDF, screenshot PNG, WARC, title, article text, favicon, headers, media, subtitles, metadata, thumbnails, and git clones.
+Manage the same collection through the Web UI, CLI, REST API, Python API, SQLite, or the data folder itself. The tools are complementary, not separate products.
+Ecosystem
+Extractor and plugin packages used to preserve more types of content.
+ +Download and extraction tooling for saving web content and media.
+Runtime package management for dependencies used by ArchiveBox and plugins.
+ +Event bus infrastructure for ArchiveBox automation and integrations.
+ +Documentation
+The README and wiki cover supported sources, outputs, scheduled archiving, storage backends, authentication, security, publishing, Chrome setup, upgrades, and troubleshooting.
+