ArchiveBox Docker on a Low-Cost Indian VPS: Storage and Memory Needs
Plan RAM, swap and disk for ArchiveBox on an Indian VPS, keep its database reliable, and estimate when remote archive storage makes sense.
Short answer: For a small ArchiveBox deployment, start with at least 2 GB of RAM and reliable local SSD or NVMe storage. ArchiveBox lists 1 GB as its minimum, but recommends 2 GB or more; on a 1 GB VPS, it advises at least 4 GB of swap before full default crawls. Disk use varies widely: the project estimates roughly 1–50 GB per 1,000 snapshots, depending largely on media capture and size limits. Keep the SQLite database and active collection files local. If needed, move only the large archive payload directory to remote storage.
This guide covers a Docker Compose deployment, resource planning, a current Indian VPS example, storage layout, backups, troubleshooting and monitoring. It does not promise a fixed per-snapshot size or a universal concurrency limit: both depend on what you capture and how you run crawls.
1. Choose a VPS size from the workload
ArchiveBox’s installation guidance sets a useful floor, not a guarantee that every capture mix will fit comfortably. Chromium-based capture methods add memory pressure. Disabling them can reduce that pressure, but removes those capture methods.
| Starting point | When it may fit | Trade-off |
|---|---|---|
| 1 GB RAM, plus at least 4 GB swap | Very constrained use, with conservative capture settings | Swap is much slower than RAM; full default crawls can be tight. |
| 2 GB RAM or more | Practical documented starting point for a small personal deployment | Still monitor memory, especially during browser-based captures. |
| More RAM and vCPU | More concurrent work or heavier capture workloads | Choose based on observed usage; the available research does not establish a concurrency formula. |
Before buying, compare allocated RAM and swap support, vCPU, local disk capacity and expansion, India region and latency, included backups, bandwidth or egress charges, contract term and renewal price. A low introductory monthly figure can hide a larger upfront payment or a higher renewal.
2. Estimate disk usage with a range, then measure
ArchiveBox documentation gives a broad estimate of about 1 GB to 50 GB per 1,000 snapshots. This is an upstream estimate, not a prediction for a particular collection. Media capture, configured size limits and the pages you archive can move usage substantially.
Use this planning model:
estimated_payload_gb = expected_snapshots * observed_average_gb_per_snapshot
planned_disk = database_and_active_data + estimated_payload_gb + headroom + backup_space
Do not substitute the endpoints of the published range as a precise forecast. Capture a representative sample first, measure the actual collection growth, and leave headroom for duplicates, media, the search index, logs and backups. If the archive matters, keep a separate recoverable backup; a VPS disk alone is not a backup.
What lives in the Docker data directory?
The image uses a /data tree for the SQLite collection database, configuration, archive payloads, browser personas, Sonic search index and logs. Treat all active collection data as important and protect it. Archive payloads usually account for the largest variable portion, but database and index files also need reliable storage.
3. Keep the database local; move payloads only if needed
data/index.sqlite3 should stay on a fast, reliable local filesystem that supports fsync; SSD or NVMe is recommended. Keep the rest of the active application data local too. ArchiveBox’s storage guidance allows the data/archive/ payload directory to use slower or remote storage when local disk is limited.
Remote storage adds operational details that are provider-specific: mount reliability, request fees, bandwidth or egress charges, latency and total cost. The available research does not establish a universal remote-storage cost. Follow ArchiveBox’s storage instructions, preserve symlinks when using Rclone-backed archive trees, and ensure mounted storage is writable by the container’s numeric UID and GID. Test real writes and reads before relying on it.
A prudent layout is:
- Local SSD/NVMe: SQLite database, configuration, personas, logs, search index and other active files.
- Local or separately mounted storage: archive payloads in
data/archive/. - Independent backup location: recoverable copies of the data you need to restore, with a tested restore procedure.
4. Deploy ArchiveBox with Docker Compose
The ArchiveBox project recommends Docker Compose for a single-host deployment. Use the current Compose file and commands from the official image repository, since image versions and setup instructions can change.
- Create a persistent host data directory and download the project’s Compose file following the official quickstart.
- Pull the image and start the service with
docker compose up -d --wait. - Complete initial setup through the service’s
/admin/page. The service exposes container port5797. - For public HTTPS access, place a reverse proxy in front and set
BASE_URLto the externally reachable URL. - Confirm that the mounted data path persists across container restarts and that its permissions match the container process.
Keep the collection directory protected. Back up the database and payloads consistently enough for your recovery needs, and document how to restore them. Consult the [ArchiveBox installation guide](https://github.com/ArchiveBox/ArchiveBox/wiki/Install) and [official Docker image quickstart](https://github.com/ArchiveBox/docker) for the current commands and configuration.
5. Example: compare a low-cost India VPS by usable resources
At the time the research was checked, Hostinger’s official India VPS page showed an example tier with 1 vCPU, 4 GB RAM and 50 GB NVMe at a promotional ₹599/month, renewing at ₹999/month for a two-year term. Its next listed tier had 2 vCPU, 8 GB RAM and 100 GB NVMe at a promotional ₹799/month, renewing at ₹1,199/month. Prices and availability can change; the listed monthly figures reflect the total plan price divided by the term, and plans are paid upfront.
This is an example to compare, not a universal recommendation. Verify the live checkout total, renewal price, included backups, India-region availability and bandwidth terms before purchasing. A 50 GB disk may suit a small collection dominated by text pages, but the documented storage range means it can fill quickly with media or a large archive. See the [Hostinger India VPS listing](https://www.hostinger.in/vps-hosting) and confirm current terms directly.
| Check | Why it matters for ArchiveBox |
|---|---|
| RAM and swap | Browser-based captures and crawls need memory headroom. |
| Local SSD/NVMe and capacity | The database and active files need reliable local storage; archive payloads grow with capture mix. |
| vCPU allocation | Relevant to responsiveness and concurrent work; workload-specific limits must be measured. |
| Backups and restore | Provider snapshots and application-level recovery are separate questions; know what is included. |
| Region, bandwidth and egress | Affects access latency and potentially storage or backup costs. |
| Upfront and renewal price | Compare the full contract cost, not just the promotional monthly equivalent. |
6. Tune and monitor before scaling
- Start with conservative capture settings and a representative set of URLs.
- Record disk growth and memory use during captures, including browser-based methods if you plan to use them.
- Increase crawl volume gradually. Observe peak RAM, swap use and disk space rather than assuming a fixed safe concurrency.
- Keep enough free disk for collection growth, indexes, logs and backups. Set an alert before the filesystem reaches capacity.
- If local capacity is the constraint, evaluate moving only
data/archive/after testing permissions, symlinks, reads and writes. - Revisit provider pricing and backup coverage at renewal.
For cost planning, count the VPS renewal price and any separate storage, request, bandwidth, backup or egress charges. These vary by provider, so calculate them from the provider’s current terms and your measured usage.
7. Troubleshooting
| Symptom | Likely cause | What to check or change |
|---|---|---|
| Container restarts or captures fail under load | Memory pressure, especially with Chrome-based methods | Check host and container memory and swap use. Reduce concurrent work or disable browser-based methods if you can accept losing them; consider more RAM. |
| Host becomes very slow during crawls | A 1 GB machine is relying heavily on swap, or workload exceeds available memory | Confirm swap exists and is at least 4 GB on a 1 GB VPS before full default crawls. Reduce workload or upgrade RAM for sustained use. |
| Disk fills sooner than expected | Media capture, large snapshots, index growth, logs or backups were omitted from the estimate | Inspect actual directory growth, review capture settings and size limits, and plan from representative measurements. Expand disk or move archive payloads using the documented method. |
| SQLite errors or poor database behavior on remote storage | The database is on a filesystem without the needed reliable local fsync behavior |
Move data/index.sqlite3 back to reliable local SSD/NVMe storage. Keep remote storage for the archive payload directory only. |
| Permission denied when writing archive files | The mounted directory is not writable by the container’s numeric UID/GID | Check ownership and permissions against the container process, then test a write and read from inside the deployment. |
| Rclone-backed archive files or links do not resolve correctly | Symlinks were not preserved or the remote tree is not mounted as expected | Follow the official storage guidance, preserve symlinks and verify paths with actual reads. |
| Public links or generated URLs use the wrong host | BASE_URL does not match the externally reachable reverse-proxy URL |
Set the external HTTPS URL as BASE_URL and verify proxy routing to container port 5797. |
8. Or skip the browser setup
If your goal is to capture clean website screenshots rather than maintain a self-hosted web archive, [ScreenshotNeo](https://screenshotneo.com) provides a screenshot API and MCP server. One GET request returns an image or PDF. Its API parameters are documented at [ScreenshotNeo API docs](https://screenshotneo.com/docs/).
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Cookie banners are accepted and removed before capture, along with known newsletter popups and chat widgets. Bot checks, blank pages and failed loads are never billed. An MCP server lets AI agents use screenshot tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. ScreenshotNeo is a screenshot service, while ArchiveBox is for building and maintaining a web archive.
Sign up for 1,000 free screenshots a month, with no card required.
FAQ
Can ArchiveBox run on a 1 GB VPS?
That is the documented minimum, but 2 GB or more is recommended. The project advises at least 4 GB of swap on a 1 GB VPS before full default crawls.
Can I know the disk required for 1,000 snapshots in advance?
Only as a broad range: ArchiveBox estimates roughly 1–50 GB per 1,000 snapshots. Capture a representative sample and measure your own collection.
Can I put the entire /data directory on object or remote storage?
The guidance is to keep the database and other active collection files local. The archive payload directory is the part that can be moved to slower or remote storage.
Does the India VPS example guarantee enough space?
No. Its capacity is a provider listing, while archive growth depends on your captures. Confirm current plan details and measure your workload before committing.
Sources
- ArchiveBox installation guidance — RAM recommendations and deployment overview.
- ArchiveBox documentation — storage estimate and capture configuration context.
- Official ArchiveBox Docker image repository — Compose quickstart and data layout.
- ArchiveBox storage setup documentation — local database and archive storage guidance.
- Hostinger India VPS plans — example listing; verify live pricing and terms.


