{"id":15655288,"url":"https://github.com/fenwick67/self-hosted-ssb","last_synced_at":"2025-05-04T07:01:02.955Z","repository":{"id":84444885,"uuid":"121598558","full_name":"fenwick67/self-hosted-ssb","owner":"fenwick67","description":"self-hosted Secure Scuttlebutt web client","archived":false,"fork":false,"pushed_at":"2020-09-15T20:27:52.000Z","size":238,"stargazers_count":24,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T21:33:10.929Z","etag":null,"topics":["secure-scuttlebutt","self-hosted","ssb"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fenwick67.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-15T06:36:01.000Z","updated_at":"2024-04-25T22:37:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"6654ed98-6051-4a29-84a8-307a430a57e6","html_url":"https://github.com/fenwick67/self-hosted-ssb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenwick67%2Fself-hosted-ssb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenwick67%2Fself-hosted-ssb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenwick67%2Fself-hosted-ssb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fenwick67%2Fself-hosted-ssb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fenwick67","download_url":"https://codeload.github.com/fenwick67/self-hosted-ssb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252134223,"owners_count":21699675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["secure-scuttlebutt","self-hosted","ssb"],"created_at":"2024-10-03T12:57:45.171Z","updated_at":"2025-05-03T02:36:27.905Z","avatar_url":"https://github.com/fenwick67.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Self-hosted SSB\n\n(NOTE: THIS IS SLOW AND BAD, IT IS NOT MAINTAINED AND IS MOSTLY A PROOF OF CONCEPT)\n\nA functioning, single-user, self-hosted Secure Scuttlebutt web server!\n\n![screenshot](doc/screenshot-narrow.png)\n![screenshot](doc/screenshot-wide.jpg)\n\n# What you can do\n\n* Join pubs\n* Look at the chronological timeline\n* Make posts, replies and likes\n* Make friends\n* View your friends' posts\n* View a thread, topic, user, channel, or attachment\n\n# What you can't do\n\n* Anything offline\n* Anything terribly quickly\n* Upload images\n* Subscribe to anything\n* Receive/send PMs\n* Change your description or image\n* Change other people's names or descriptions or images\n\n# Installation\n\n1. [Install Scuttlebot](https://ssbc.github.io/docs/scuttlebot/install.html)  and run it at least once to make sure it works\n2. `git clone https://github.com/fenwick67/ssb-web.git`\n3. `cd ssb-web`\n4. `npm install`\n\n# Usage \n\n## Local machine\n\n1. `node index.js`\n2. Go to `localhost:8080` to see!\n3. GOTO THEN ⤵⤵⤵\n\n## Server\n\n1. `node index.js --imagedomain http://domain.name.or.ip:8081`\n2. Go to `http://domain.name.or.ip:8080` to see!\n3. GOTO THEN ⤵⤵⤵\n\n## THEN\n\nIt should be running!  To start scuttling...\n\n4. Try and log in\n5. Look in the console output for what the default password is\n6. Attempt to log in with the correct password\n7. Add a pub invite via the Settings tab (watch the console to see if it actually worked)\n8. Change your password as Scuttlebot builds the initial indexes.  It might be a few minutes.\n\n# CLI Options\n\n```\nport           =\u003e set which port the main server should listen on \nimageport      =\u003e set which port the image server should listen on\nimagedomain    =\u003e set the domain name that the images will be found on\n                      format it like this (include the port and protocol): \n                      https://domain.name.or.ip:8081\n```\n\nYou can also set these as environment variables if you use ALLCAPS.\n\nThe defaults are...\n\n```\nPORT=8080\nIMAGEPORT=8081\nIMAGEDOMAIN=http://localhost:8081\n```\n\n# Nerd Notes\n\nImages and other blobs are served on a separate port to prevent any malicious stuff from being able to read your `localStorage` (where your JWT is stored).\n\nIf you change your password, your old sessions will be invalidated on the next start.\n\n**Set up HTTPS please**, only run the HTTP stuff behind a HTTPS reverse proxy like NGINX.\n\nExample nginx configs for your reference that might work:\n\n```\n# the main server\nserver {\n    listen   443; \n    server_name your.public.url;\n\n    ssl_certificate     your.crt;\n    ssl_certificate_key your.key;\n    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;\n    ssl_ciphers         HIGH:!aNULL:!MD5;\n\n    location / {\n        proxy_pass http://127.0.0.1:8080;\n    }\n}\n\n# used for assets\nserver {\n    listen   6060; \n    server_name your.public.url;\n\n    ssl_certificate     your.crt;\n    ssl_certificate_key your.key;\n    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;\n    ssl_ciphers         HIGH:!aNULL:!MD5;\n\n    location / {\n        proxy_pass http://127.0.0.1:8081;\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenwick67%2Fself-hosted-ssb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffenwick67%2Fself-hosted-ssb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffenwick67%2Fself-hosted-ssb/lists"}