Selfhosted collaborative browser - room management for n.eko

neko-rooms

release license pulls issues Chat on discord

Simple room management system for n.eko. Self hosted rabb.it alternative.

rooms new room n.eko

How to start

You need to have installed Docker and docker-compose. You need to have custom domain pointing to your server's IP.

You can watch installation video provided by Dr R1ck:

https://www.youtube.com/watch?v=cCmnw-pq0gA

Installation guide

You only need .env.example, docker-compose.yml and traefik/.

Step 1

Copy .env.example to .env and customize.

cp .env.example .env

Step 2

Create usersfile with your users:

touch traefik/usersfile

And add as many users as you like:

echo $(htpasswd -nb user password) >> traefik/usersfile

Step 3

Create acme.json

touch traefik/acme.json
chmod 600 traefik/acme.json

Update your email in traefik/traefik.yml.

Roadmap:

  • add GUI
  • add HTTPS support
  • add authentication provider for traefik
  • add bearer token to for API
  • add docker ssh / tcp support
  • add docker swarm support
Owner
Comments
  • UFW blocking ICE connection

    UFW blocking ICE connection

    Ok. Sorry to bother, but I have everything working well except for one issue.

    When i enable ufw and allow the ports 80, 443, and the 59000-59049 udp ports, the ICE cant establish a connection with the firewall up.

    There must be another port I'm missing that neko needs to run.

  • Neko room doesn't connect

    Neko room doesn't connect

    I create a room and when I try to log in it fails and I got timed out Tried using docker and install bash

    Is there a way to enable debug to see what is not working? Tried Digital Ocean and AWS

    Neko alone works just fine but with rooms doesn't

  • Using neko-rooms with nginx

    Using neko-rooms with nginx

    Hello, how can I use this project with nginx? I'm using the neko reverse proxy configuration, however, with neko-rooms I only get a 404 not found.

    I started the server using the .http.yml file.

  • Adding custom images.

    Adding custom images.

    So i'm pretty ok with docker and creating images. I wan't to create my own image or change one up.

    How would i add them to neko-rooms?

    Awesome project BTW, thank you!

  • how to scale neko-rooms?

    how to scale neko-rooms?

    trying to understand how would you scale neko-rooms, horizontally, vertically?

    Are each rooms essentially individual servers on its own?

    Does it make sense to host as many rooms as possible on a single server with huge amount of cpu and ram?

  • chown error on private storage when recreating room

    chown error on private storage when recreating room

    Hi,

    I'm having an error when re-creating a room with private storage. I'm mapping /home/heko/.mozilla folde to keep profile when the room is recreated I get this error:

    chown /data/rooms/U00-gbrian/mozilla/firefox/p3gad2ub.default-esr/lock: no such file or directory

    I think this issue is happening because lock is a linked file and that causes a problem with docker container if host and cotainer does not have the same folder struture.

    I've commented out the lines below until having a better solution

    at https://github.com/m1k1o/neko-rooms/blob/b183c1e0521956f55afcf37c836aab40ad90da87/internal/room/manager.go#L216

  • Allow persistent data for container

    Allow persistent data for container

    This PR is adding functionality to mount folders to containers. User's path root will be changed to custom container folder in instance data folder: <instance.data>/<container.name>/<users.path>.

    To do

    • [ ] When folder does not exist, it creates with root:root user, and is not accessible for neko user inside container.
      • [x] Switched to mounts instead of binds, target folder must exist now. (changed in 0e99dd5fb0bfe4d3e0728e9a26ee61175e29548c)
    • [x] Path root can be bypassed easily with adding /../ to path. (fixed in 13451186ceec8130e8b4a9aa66efd1f02358c881)
  • [bug] Room with name api

    [bug] Room with name api

    You can create a room with the name 'api', it not only becomes not visitable, it also becomes undeletable.

    My suggestion would be to make the rooms acceable und example.org/r/

    It would separate, the manager from the rooms and makes it easier to configure reverse proxies. I'm running authentik (similar to keycloak, a autentication server) and i had to make a special regex so /api is secured. This rule would be easier if there where a clear separation between rooms and manager.

    What do you think?

    This project is awesome, BTW :) :+1:

  • [Feature request] Allow expose multiple ports from container

    [Feature request] Allow expose multiple ports from container

    Hi,

    On https://codx.meetnav.com need to expose other ports than neko to allows developers to test their work from their own browser. So when user is running a website on port 3000 inside neko, I need to be accessible as well through https://rooms-domain.com/room/<room-name>-3000/ for example.

    What if we create a "PORTS" section on settings and we add the extra traefik labels for this ports mapping?

    Thanks

  • Issue Composing Docker in VPS

    Issue Composing Docker in VPS

    I have tried the manual set-up and the express set-up methods and have followed along with the tutorials however every time I attempt to run docker-compose up -d inside neko-rooms/traefik I am met with a Traceback and warning messages stating that every variable inside the neko-rooms .env file is "blank"

    I have edited everything inside the file, and every time I save the changes they save. I am wondering why the server isn't reading anything from the environment variables.

    Screen Shot 2022-02-10 at 12 56 32 PM Screen Shot 2022-02-10 at 2 09 55 PM .

    What can I do to solve this?

  • Not asking me to sign in.

    Not asking me to sign in.

    I have Caddy reverse proxying to neko rooms, and when I go to the domain, it works fine, but it doesn't ask me to sign in at all.

    What am I doing wrong?

  • How to increase shared memory size?

    How to increase shared memory size?

    I want to run an Ubuntu game inside the container and I need to increase the shared memory size. I've tried on the neko-rooms ADD ROOM / expert setings to add a new key shm_size and value '16gb' without success. It seems that the value of shm_size is hardcoded to 2GB Can you help me? Thank you.

  • [Question] neko-vpn with neko-rooms?

    [Question] neko-vpn with neko-rooms?

    I was wondering, is there a way to get neko-vpn running with neko-rooms?

    I know that I could use a Wireguard container with neko-rooms, but then of course every room would be routed via that VPN. neko-vpn seems like a good option, but I'm not sure how to even start combining them.

    Any help would be appreciated - thanks.

  • Browser Extensions

    Browser Extensions

    I recently came across this software as an alternative to watchparty.me (it seems to use similar tech). It looks like the VPS provider I'm using is getting blocked by Netflix because I get an error 403, permission denied when trying to access it.

    I looked at enabling a VPN extension, but it looks like that's disabled by admin?

  • [Feature request]: Limit neko rooms resources

    [Feature request]: Limit neko rooms resources

    I'd like to add some limitations to the containers like:

    Running limits and constrains

    Max amount of time for the room in minutes and associated action like

    {
        "time_to_live": 60,
        "action": "delete"
    }
    

    Some comments about implementation:

    • cron job: https://www.airplane.dev/blog/creating-golang-cron-jobs
    • Storing room constrains as labels: https://github.com/Shopify/docker/blob/master/docs/userguide/labels-custom-metadata.md
Async management of servers, containers, workstations...basically anything that runs an operating system.

steward What is it ? Command And Control anything asynchronously. Send shell commands to control your servers by passing a message that will have guar

Dec 14, 2022
A discord bot that mumbles the audio from another room into your room (WIP)

DiscordGo Voice Receive Example This example experiments with receiving voice data from Discord. It joins a specified voice channel, listens for 10 se

Dec 11, 2021
Lightweight selfhosted Firefox Send alternative without public upload
Lightweight selfhosted Firefox Send alternative without public upload

Gokapi Available for: Bare Metal Docker About Gokapi is a lightweight server to share files, which expire after a set amount of downloads or days. It

Jan 5, 2023
PolarDB Cluster Manager is the cluster management component of PolarDB for PostgreSQL, responsible for topology management, high availability, configuration management, and plugin extensions.

What is PolarDB Cluster Manager PolarDB Cluster Manager is the cluster management component of PolarDB for PostgreSQL, responsible for topology manage

Nov 9, 2022
hack-browser-data is an open-source tool that could help you decrypt data from the browser.
hack-browser-data is an open-source tool that could help you decrypt data  from the browser.

hack-browser-data is an open-source tool that could help you decrypt data ( password|bookmark|cookie|history|credit card|download

Dec 23, 2022
🌭 The hotdog web browser and browser engine 🌭
🌭 The hotdog web browser and browser engine 🌭

This is the hotdog web browser project. It's a web browser with its own layout and rendering engine, parsers, and UI toolkit! It's made from scratch e

Dec 30, 2022
A native Go clean room implementation of the Porter Stemming algorithm.

Go Porter Stemmer A native Go clean room implementation of the Porter Stemming Algorithm. This algorithm is of interest to people doing Machine Learni

Jan 3, 2023
Haxball room API for Go
Haxball room API for Go

Haxballgo Haxball room API for Go ?? Simple usage func main() { r := room.New() defer r.Shutdown() l := r.Logger() s := r.Scheduler() r.

Nov 24, 2022
Websocket server, implemented flow Room style

ignite A websocket server module. Require redis to scale to multi nodes. Client/server message follow format type Message struct { Event string

Apr 10, 2022
Best Room Price Scraper from Booking.com

Best Room Price Scraper from Booking.com This repo is a tutorial of Large Scale

Nov 11, 2022
Mauliasproxy - a simple room alias proxy that can respond to the federation alias query endpoint

Mauliasproxy - a simple room alias proxy that can respond to the federation alias query endpoint

Dec 22, 2022
Collaborative Filtering (CF) Algorithms in Go!

Go Recommend Recommendation algorithms (Collaborative Filtering) in Go! Background Collaborative Filtering (CF) is oftentimes used for item recommenda

Dec 28, 2022
A recommender system service based on collaborative filtering written in Go

Language: English | 中文 gorse: Go Recommender System Engine Build Coverage Report GoDoc RTD Demo gorse is an offline recommender system backend based o

Dec 29, 2022
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 8, 2023
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems
Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 2, 2023
Deece is an open, collaborative, and decentralised search mechanism for IPFS
Deece is an open, collaborative, and decentralised search mechanism for IPFS

Deece Deece is an open, collaborative, and decentralised search mechanism for IPFS. Any node running the client is able to crawl content on IPFS and a

Oct 29, 2022
The open-source collaborative IDE for your databases.
The open-source collaborative IDE for your databases.

The open-source collaborative IDE for your databases in your browser. About Slashbase is an open-source collaborative IDE for your databases in your b

Sep 4, 2022
Our collaborative Wiki software.

Emvi Wiki Support? No. This used to be our SaaS on emvi.com, but didn't work out the way we wanted. It's now open-source to help some of our users kee

Mar 4, 2022
IPFS Collaborative Notebook for Research
IPFS Collaborative Notebook for Research

IPFS Collaborative Notebook for Research What's in This Repo? We use this repo in two ways: Issues to track several kinds of discussion on topics rela

Jan 6, 2023
Collab - Library for Collaborative Editing (Operational Transform, CRDT) in Go

collab collab is a work-in-progress Go library for collaborating software systems, implementing Operational Transformation (OT), Commutative Replicati

Jan 9, 2022