If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: docs.joinmastodon.org/admin/optional/tor - Onion services - Mastodon docu.

site address: docs.joinmastodon.org/admin/optional/tor/ redirected to: docs.joinmastodon.org/admin/optional/tor

site title: Onion services - Mastodon documentation

Our opinion (on Wednesday 01 July 2026 7:07:51 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=Serving Mastodon through Tor onion services.;

Headings (most frequently used words):

tor, onion, services, installing, configure, move, your, mastodon, configuration, serve, over, http, gotchas, sponsored, by, alternative, service,

Text of the page (most frequently used words):
the (40), mastodon (38), your (37), tor (29), onion (18), you (17), this (15), can (15), and (14), nginx (14), #configuration (13), admin (13), https (12), with (11), #service (10), example (10), that (10), file (10), will (9), server (9), etc (9), torproject (9), org (9), com (8), server_name (8), instance (7), for (7), deb (7), not (6), 443 (6), include (6), listen (6), new (6), also (5), have (5), own (5), may (5), conf (5), services (5), snippets (5), var (5), live (5), ssl (5), over (5), from (5), installing (5), through (4), could (4), need (4), http (4), header (4), like (4), should (4), restart (4), hostname (4), letsencrypt (4), pem (4), http2 (4), serve (4), add (4), log (4), repository (4), apt (4), profile (4), account (4), api (4), oauth (4), using (4), domain (3), users (3), they (3), replace (3), there (3), are (3), certificate (3), configuring (3), add_header (3), choose (3), when (3), see (3), look (3), following (3), configurations (3), all (3), both (3), any (3), address (3), configure (3), subdomain (3), other (3), location (3), lib (3), onion_service (3), qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7 (3), list (3), default (3), request_uri (3), their (3), security (3), public (3), move (3), stretch (3), release (3), gpg (3), search (3), preferences (3), apps (3), reports (3), accounts (3), setting (3), source (2), blog (2), such (2), how (2), want (2), still (2), urls (2), frontend (2), url (2), manually (2), things (2), gotchas (2), tls (2), does (2), use (2), uses (2), but (2), required (2), about (2), alt (2), svc (2), clients (2), alternative (2), server_names_hash_bucket_size (2), status (2), into (2), here (2), moving (2), different (2), without (2), would (2), places (2), wish (2), privkey (2), ssl_certificate_key (2), fullchain (2), ssl_certificate (2), close (2), upgrade (2), connection_upgrade (2), http_upgrade (2), map (2), 301 (2), return (2), section (2), added (2), only (2), while (2), version (2), certificates (2), where (2), now (2), 500 (2), error (2), install (2), a3c4f0f979caa22cdba8f512ee8cbc9e886ddd89 (2), key (2), main (2), network (2), notificationpolicy (2), filter (2), report (2), quote (2), domainblock (2), notifications (2), trends (2), collections (2), domain_blocks (2), tokens (2), environment (2), implementing (2), posts (2), machine (2), features (2), running (2), imprint, view, join, sponsored, last, updated, february, 2026, available, 简体中文, improve, page, various, resources, images, offered, regular, clearnet, possibly, problem, depending, cautious, try, mentioned, earlier, certain, force, continue, few, aware, because, connection, terminate, normal, non, port, configured, differently, truncated, name, notes, persist, 86400, qknf, skq7, advertise, existence, informs, accessed, via, some, support, connect, way, problems, consider, increasing, size, 128, happens, uncomment, line, build, server_names_hash, increase, systemctl, restarting, webserver, run, issue, web, payoff, copied, change, made, note, has, been, prefixed, acts, wildcard, subdomains, routed, respond, host, omit, long, hash, provided, located, reflected, alternate_domains, update, env, production, prepending, additional, existing, tempting, isn, always, ideal, mostly, useful, large, companies, produce, company, information, authority, provides, them, explains, why, really, beneficial, hand, however, lot, redirects, site, presence, validated, make, easier, having, remove, prefix, post, project, free, assumes, expose, internet, simultaneously, bit, directive, place, were, warn, mastodon_error, error_log, mastodon_access, access_log, html, 504, 503, 502, 501, error_page, home, root, 80m, client_max_body_size, sendfile, keepalive_timeout, same, origin, referrer, policy, create, copy, every, parameter, apart, directives, well, options, let, supporting, browsers, know, accessible, somewhat, tell, twice, keep, its, refer, later, dry, find, sudo, hiddenserviceport, 127, hiddenserviceversion, hiddenservicedir, edit, torrc, follow, projects, instructions, secure, manpage, creation, user, details, updating, done, securely, therefore, disabled, get, keyring, finally, packages, export, curl, asc, import, next, src, first, debian, archive, needs, served, give, used, connected, serving, webpushsubscription, translation, token, termsofservice, tag, suggestion, statussource, statusedit, shallowtag, shallowquote, scheduledstatus, rule, role, relationshipseveranceevent, relationship, reaction, quoteapproval, privacypolicy, previewcardauthor, previewcard, poll, notificationrequest, notificationfallback, notification, mediaattachment, marker, identityproof, filterstatus, filterresult, filterkeyword, featuredtag, featureapproval, familiarfollowers, extendeddescription, customemoji, conversation, context, collectionwithaccounts, collectionitem, collection, asyncrefresh, application, appeal, annualreport, announcement, measure, ipblock, emaildomainblock, domainallow, dimension, cohort, canonicalemailblock, accountwarning, entities, streaming, markers, lists, conversations, timelines, scheduled_statuses, polls, media, statuses, proofs, oembed, push, directory, custom_emojis, announcements, health, grouped, async_refreshes, emails, annual, retention, measures, ip_blocks, email_domain_blocks, domain_allows, dimensions, canonical_email_blocks, tags, suggestions, mutes, followed_tags, follow_requests, filters, featured_tags, favourites, endorsements, bookmarks, blocks, methods, rate, limits, scopes, guidelines, best, practices, datetime, formats, rest, bearcaps, microformats, webfinger, activitypub, spec, compliance, design, reference, creating, themes, css, styling, state, management, components, guide, issues, responsible, disclosure, routes, code, structure, dev, technical, overview, contributing, libraries, implementations, logging, obtaining, client, app, access, playing, data, getting, started, developing, roles, webhooks, database, index, corruption, troubleshooting, errors, moderation, actions, scaling, migrating, backing, upgrading, cli, single, sign, captcha, object, storage, optional, full, text, preparing, official, ios, android, leaving, externally, more, settings, set, promoting, yourself, others, dealing, unwanted, content, quoting, posting, signing, what, documentation,


Text of the page (random words):
onion services mastodon documentation what is mastodon using mastodon signing up for an account setting up your profile posting to your profile using the network features quoting other posts dealing with unwanted content promoting yourself and others set your preferences more settings using mastodon externally moving or leaving accounts official ios and android apps running your own server running mastodon preparing your machine installing from source configuring your environment configuring full text search installing optional features object storage onion services captcha single sign on setting up your new instance using the admin cli upgrading to a new release backing up your server migrating to a new machine scaling up your server moderation actions troubleshooting errors database index corruption webhooks roles developing mastodon apps getting started with the api playing with public data obtaining client app access logging in with an account libraries and implementations implementing quote posts implementing collections contributing to mastodon technical overview setting up a dev environment code structure routes security issues and responsible disclosure frontend guide components state management css and styling creating themes design tokens reference spec compliance activitypub webfinger security microformats oauth bearcaps rest api datetime formats guidelines and best practices oauth tokens oauth scopes rate limits api methods accounts blocks bookmarks domain_blocks endorsements favourites featured_tags filters follow_requests followed_tags mutes preferences reports suggestions tags admin accounts canonical_email_blocks dimensions domain_allows domain_blocks email_domain_blocks ip_blocks measures reports retention trends annual reports apps emails oauth async_refreshes collections grouped notifications health instance announcements custom_emojis directory trends notifications push oembed profile proofs search statuses media polls scheduled_statuses timelines conversations lists markers streaming api entities account accountwarning admin account admin canonicalemailblock admin cohort admin dimension admin domainallow admin domainblock admin emaildomainblock admin ip admin ipblock admin measure admin report announcement annualreport appeal application asyncrefresh collection collectionitem collectionwithaccounts context conversation customemoji domainblock error extendeddescription familiarfollowers featureapproval featuredtag filter filterkeyword filterresult filterstatus identityproof instance list marker mediaattachment notification notificationfallback notificationpolicy notificationrequest poll preferences previewcard previewcardauthor privacypolicy profile quote quoteapproval reaction relationship relationshipseveranceevent report role rule scheduledstatus search shallowquote shallowtag status statusedit statussource suggestion tag termsofservice token translation v1 filter v1 instance v1 notificationpolicy webpushsubscription onion services serving mastodon through tor onion services installing tor configure tor move your mastodon configuration serve tor over http alternative service gotchas mastodon can be served through tor as an onion service this will give you a onion address that can only be used while connected to the tor network installing tor first tor s debian archive needs to be added to apt deb https deb torproject org torproject org stretch main deb src https deb torproject org torproject org stretch main next add the gpg key curl https deb torproject org torproject org a3c4f0f979caa22cdba8f512ee8cbc9e886ddd89 asc gpg import gpg export a3c4f0f979caa22cdba8f512ee8cbc9e886ddd89 apt key add finally install the required packages apt install tor deb torproject org keyring if you get an error like this e the repository https deb torproject org torproject org stretch release does not have a release file n updating from such a repository can t be done securely and is therefore disabled by default n see apt secure 8 manpage for repository creation and user configuration details you can follow the tor projects instructions on installing their repository configure tor edit the file at etc tor torrc and add the following configuration hiddenservicedir var lib tor onion_service hiddenserviceversion 3 hiddenserviceport 80 127 0 0 1 80 restart tor sudo service tor restart you can now find your tor hostname in var lib tor onion_service hostname move your mastodon configuration we will need to tell nginx about your mastodon configuration twice to keep things dry we need to move the mastodon configuration into its own file that can we can refer to later create a new file at etc nginx snippets mastodon conf copy every mastodon configuration parameter apart from the listen server_name include directives as well as all the ssl options include an onion location header to let supporting browsers know that this service is also accessible from tor your new file should look somewhat like this add_header referrer policy same origin add_header onion location mastodon qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7 onion request_uri keepalive_timeout 70 sendfile on client_max_body_size 80m root home mastodon live public error_page 500 501 502 503 504 500 html access_log var log nginx mastodon_access log error_log var log nginx mastodon_error log warn in the new configuration file add an include directive in the place of where your mastodon configurations were your nginx configuration file should now look a bit like this server listen 80 server_name mastodon example com return 301 https server_name request_uri map http_upgrade connection_upgrade default upgrade close server listen 443 ssl http2 list 443 ssl http2 server_name mastodon example com include etc nginx snippets mastodon conf ssl_certificate etc letsencrypt live mastodon example com fullchain pem ssl_certificate_key etc letsencrypt live mastodon example com privkey pem serve tor over http this section assumes that you want to expose your instance on both tor and the public internet simultaneously while it may be tempting to serve your tor version of mastodon over https it isn t always ideal they are mostly useful for large companies that can produce their own certificates with their own company information there is no certificate authority ca that provides them for free and there is also a blog post from the tor project explains why https certificates are not really beneficial for security on the other hand however mastodon uses a lot of redirects to the https version of your site where the presence of a validated certificate may make it easier for your users to use your instance on tor without having to manually remove the https prefix in urls in this section we will go over how to serve your mastodon instance over http but for tor only this can be added by prepending an additional configuration to your existing nginx configuration server listen 80 server_name mastodon qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7 onion include etc nginx snippets mastodon conf server listen 80 server_name mastodon example com return 301 https server_name request_uri map http_upgrade connection_upgrade default upgrade close server listen 443 ssl http2 list 443 ssl http2 server_name mastodon example com include etc nginx snippets mastodon conf ssl_certificate etc letsencrypt live mastodon example com fullchain pem ssl_certificate_key etc letsencrypt live mastodon example com privkey pem also update your env production alternate_domains mastodon qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7qknfwnnh2oh4qhq7corf7hyj8wcwpdwsa8ohjmcpg9jodmzvva6pskq7 onion replace the long hash provided here with your tor domain located in the file at var lib tor onion_service hostname this should also be reflected in the onion location header in the snippets file note that the onion hostname has been prefixed with mastodon your tor address acts as a wildcard domain all subdomains will be routed through and you can configure nginx to respond to any subdomain you wish if you do not wish to host any other services on your tor address you can omit the subdomain or choose a different subdomain here you can see the payoff of moving your mastodon configurations to a different file without this all of your configurations would have to be copied to both places any change to your configuration would have to be made in both places restart your web server service nginx restart when restarting your webserver you may run into the following issue systemctl status nginx service could not build server_names_hash you should increase server_names_hash_bucket_size 64 when this happens you may uncomment the following line in your nginx conf server_names_hash_bucket_size 64 if you still have problems you may consider increasing the size up to 128 alternative service you can choose to advertise the existence of the onion service with an alt svc header this informs clients that the service can be accessed via tor and some clients with support will choose to connect that way when they see this header an example nginx configuration could look like add_header alt svc h2 qknf skq7 onion 443 ma 86400 persist 1 notes about configuring replace the truncated onion name with your own the example uses port 443 but that is not required and could be configured differently because the tls connection does not terminate at the onion service https can use a normal non onion tls certificate gotchas there are a few things you will need to be aware of as mentioned earlier certain urls in the mastodon frontend will force your users to a https url they will have to manually replace the url with http to continue various resources such as images will still be offered through your regular clearnet domain this could possibly be a problem depending on how cautious your users want try or need to be last updated february 20 2026 improve this page also available in 简体中文 sponsored by join mastodon blog view source cc by sa 4 0 imprint
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • Mastodon
  • Stephen Tures
  • Swayable

Verified site has: 191 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150
151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190 191-191


The site also has references to the 2 subdomain(s)

  joinmastodon.org  Verify   blog.joinmastodon.org  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
Connection close
Content-Length 162
Server GitHub.com
Content-Type text/html
Location htt????/docs.joinmastodon.org/admin/optional/tor/
X-GitHub-Request-Id D79E:163A8B:2C1A08:2E1A7B:6A44BCC5
Accept-Ranges bytes
Age 0
Date Wed, 01 Jul 2026 07:07:51 GMT
Via 1.1 varnish
X-Served-By cache-lcy-egml8630067-LCY
X-Cache MISS
X-Cache-Hits 0
X-Timer S1782889671.960197,VS0,VE81
Vary Accept-Encoding
X-Fastly-Request-ID 4a5d15d1345909ea09929e1b2626c8c820589c3b
HTTP/2 200
server GitHub.com
content-type text/html; charset=utf-8
last-modified Fri, 26 Jun 2026 15:57:55 GMT
access-control-allow-origin *
strict-transport-security max-age=31556952
etag W/ 6a3ea183-951f
expires Wed, 01 Jul 2026 07:17:51 GMT
cache-control max-age=600
content-encoding gzip
x-proxy-cache MISS
x-github-request-id EA1C:1C8345:142EA62:1465164:6A44BCC6
accept-ranges bytes
age 0
date Wed, 01 Jul 2026 07:07:51 GMT
via 1.1 varnish
x-served-by cache-rtm-ehrd2290022-RTM
x-cache MISS
x-cache-hits 0
x-timer S1782889671.076016,VS0,VE121
vary Accept-Encoding
x-fastly-request-id a7a5e6cea0b95a39ae2ad87d8a94bbfcb24a9f6a
content-length 8492

Meta Tags

title="Onion services - Mastodon documentation"
charset="utf-8"
name="viewport" content="width=device-width,initial-scale=1"
property="og:type" content="article"
property="og:url" content="htt????/docs.joinmastodon.org/admin/optional/tor/"
name="description" content="Serving Mastodon through Tor onion services."
property="og:description" content="Serving Mastodon through Tor onion services."
name="twitter:site" content="@joinmastodon"

Load Info

page size8492
load time (s)0.319754
redirect count1
speed download26620
server IP 185.199.109.153
* all occurrences of the string "http://" have been changed to "htt???/"