Hidden Room
Web-based anonymous live chat app and file sharing.
# install dependencies
# this is not required if you just want to use container
npm i
# generate server/key.ts
npm run gen
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
To create a production version of your app:
# build sveltekit
npm run build:app
# build server
npm run build:server
# build both
npm run build
To run the server
# run server without tor
npm run serve
# generate necessary files for containerization
npm run deploy:prepare
Docker
# add executable permission
chmod +x docker.sh
# run the script
./docker.sh
Podman
# add executable permission
chmod +x podman.sh
# run the script
./podman.sh
Hidden Room was meant to be a hidden service. For easy deployment it includes tor image builder that is located in tor directory ๐, it will also generate docker-compose.yaml so it can easily be deployed using container orchestrator like docker-compose or podman-compose
when you run
npm run deploy:prepareit will generate Dockerfile, docker.sh, podman.sh, docker-compose.yaml and tor/torrc. Check if those files are properly generated.
however if you have either file or directory named service in tor directory it will also generate tor/Dockerfile.custom and docker-compose.custom.yaml
if tor/service is a directory it will copy the content inside that directory into /var/lib/tor/hidden_room inside tor image, it should contains hostname, hs_ed25519_public_key, hs_ed25519_secret_key files.
and if tor/service is a file it will try to create custom onion address based on the text inside that file (keep in mind the longer the prefix the more time is required to build tor image, 4 or less characters would be fine). if there is no text inside that file it will use "room" as prefix
if everything is ready, simply run
# docker-compose docker-compose up -d # podman-compose podman-compose up -dand if you want to use your custom onion address
# docker docker-compose -f docker-compose.custom.yaml up -d # podman podman-compose -f docker-compose.custom.yaml up -dto see your onion address
# docker docker exec tor list-services # podman docker exec tor list-servicescheck the address using Tor Browser and see if it's running
Server
- http2 server
Client
- file type icons
- file signature-based file type detection
Container
- firewall for tor image