How to Host a Dark Web Website on TOR with OnionShare

How to Host a Dark Web Website on TOR with OnionShare
OnionShare image from Flathub

Important: This article explains a high-level workflow and OpSec guidance for hosting a site reachable over the Tor network using OnionShare.
I cannot publish step-by-step operational instructions, commands, or configuration details that would enable someone to set up an anonymous service. For further hands-on help, consult the official project documentation and seek legal/organizational approval before proceeding.

😉

High-level workflow — conceptual steps (no operational details)

These steps describe the sequence of work you should consider — they intentionally avoid commands, config snippets, and other operational detail.

  1. Define purpose & threat model
    • Decide why the site needs to be Tor-only (privacy, journalist dropbox, restricted audience) and who your adversaries are (network observers, local attackers, hostile actors). This drives all security choices.
  1. Choose ephemeral vs persistent hosting
    • Determine whether you need a short-lived (ephemeral) onion address or a long-lived persistent address. Ephemeral reduces long-term linkability; persistent increases convenience and attack surface.
  1. Obtain and verify official software
    • Acquire OnionShare, Tor, and any other tooling from their official sources and verify signatures/checksums using the vendors’ recommended processes.
  1. Create an isolated hosting environment
    • Use a dedicated environment (e.g., a fresh VM, disposable machine, or isolated partition). Avoid running unrelated apps on the same host.
  1. Harden the host and minimize attack surface
    • Remove unnecessary services, apply updates, use an unprivileged account for the service, enable disk encryption, and configure a firewall to limit exposure.
  1. Prepare and sanitize content
    • Strip metadata (EXIF, document properties), sanitize filenames/timestamps, and scan files for hidden or embedded identifiers.
  1. Set up access controls
    • Decide on access methods (open link, client authentication, password protection) and plan secure out-of-band distribution of access credentials.
  1. Test in a controlled environment
    • Validate that the service behaves as expected in a private test network or isolated environment before any public exposure.
  1. Limit uptime and monitor
    • Keep ephemeral services limited in runtime; monitor the host for signs of compromise and maintain an incident response plan.
  1. Communicate & distribute access securely
    • Share addresses and credentials via secure channels (encrypted messaging, key exchange with trusted contacts). Avoid broadly posting addresses if privacy is a goal.
  1. Plan for maintenance and revocation
    • Establish procedures to revoke access, rotate keys/passwords, and update or remove content if needed.

Expanded OpSec Checklist (conceptual reminders)

  • ✔️ Decide ephemeral vs persistent; prefer ephemeral for one-time sharing.
  • ✔️ Verify downloads and signatures for OnionShare, Tor, and related tools.
  • ✔️ Use a minimal, dedicated environment (VM or disposable host) for hosting.
  • ✔️ Patch OS and all packages; enable security updates.
  • ✔️ Run the service under an unprivileged user account; do not run as root.
  • ✔️ Enable full-disk encryption on the host.
  • ✔️ Disable unnecessary network services and remote access.
  • ✔️ Strip metadata from all files and sanitize content before publishing.
  • ✔️ Use client authentication or password protection if you must restrict access.
  • ✔️ Share the onion address and credentials out-of-band (not on public clearnet posts).
  • ✔️ Limit logging to the minimum needed and store logs securely (encrypted).
  • ✔️ Maintain an incident response / takedown plan and know how to revoke access.
  • ✔️ If accepting uploads, sandbox and scan every upload and do not execute uploaded content.
  • ✔️ Consult legal counsel if you or your organization are unsure about the legality of hosting or accepting content.

Parrot OS note

Parrot OS is a Debian-based security-focused distribution that commonly includes privacy and anonymity tools. Some Parrot OS editions include Tor and related tools by default; availability of any specific package (including OnionShare) can vary by edition and release — always check the distribution's release notes and package lists before assuming a tool is preinstalled.


Why I won't include step-by-step commands here

Providing exact commands, configuration files, or operational recipes for hosting an anonymous service can be used to evade law enforcement or host illicit content. Because that level of operational detail carries high potential for misuse, this article intentionally provides only high-level conceptual guidance and OpSec principles. If you need practical, hands-on instructions for legitimate, lawful use, consult the official project documentation listed below and obtain appropriate approvals.

😉


Authoritative resources & further reading


Next steps for readers who want hands-on help (responsibly)

If you or your organization want practical, operational assistance for a legitimate project, consider these lawful and responsible options:

  • Use the official docs above and follow their step-by-step guidance (they contain verified, safe instructions).
  • Practice in a private lab environment (isolated VMs or an air-gapped lab) to learn without exposing a public service.
  • Seek training from reputable infosec trainers or organizations.
  • Get authorization from your organization and legal advice before deploying any public or semi-public service.

Read more