Selfhosted collaborative browser - room management for n.eko

Overview

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
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.

    opened by dillfrescott 16
  • 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

    opened by joaofrenor 8
  • 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.

    opened by mwllgr 6
  • 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!

    opened by ranomier 5
  • 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?

    opened by dragonballa 4
  • 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

    bug 
    opened by gbrian 4
  • 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)
    opened by m1k1o 4
  • [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:

    bug 
    opened by ranomier 3
  • [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

    opened by gbrian 3
  • 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?

    opened by entropy-jam 3
  • 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?

    opened by dillfrescott 3
  • 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.

    opened by impromedia 1
  • [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.

    documentation question 
    opened by madindehead 4
  • 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?

    documentation enhancement 
    opened by Gagtech 2
  • [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
    enhancement 
    opened by gbrian 1
Releases(v1.5.0)
  • v1.5.0(Aug 3, 2022)

    What's Changed

    • Add protected room mount type. in https://github.com/m1k1o/neko-rooms/commit/f140f9bc89c95684b0df05e2674516852bf2a5de
    • Add multiarch builds in https://github.com/m1k1o/neko-rooms/commit/fe77fec6b3b30c40f2c9199eef137f6595705a8e
    • Add own labels in https://github.com/m1k1o/neko-rooms/commit/62b68419dee81972c0ce6e522d772050e187d9db
    • Add optional path prefix. https://github.com/m1k1o/neko-rooms/commit/8e0623ee4564c9e40c6cee79553d0719005ea990
    • Vncviewer replace with remmina in https://github.com/m1k1o/neko-rooms/commit/9b45bdcfc35e1c455f598aeb124803e563be9f0b)
    • Added NEKO_ROOMS_NEKO_PRIVILEGED_IMAGES setting to run privileged images by @gbrian in https://github.com/m1k1o/neko-rooms/commit/90d967c5bd090c9b53c8706d39b45f3e75f1a1b1
    • Add Vivaldi to drop-down menu by @whalehub in https://github.com/m1k1o/neko-rooms/pull/64
    • Add mux support in https://github.com/m1k1o/neko-rooms/pull/58
    • Remove Traefik as a depencency - Implement custom proxy in https://github.com/m1k1o/neko-rooms/pull/65
    • Added Basic Auth and Proxy Auth.

    Full Changelog: https://github.com/m1k1o/neko-rooms/compare/v1.4.2...v1.5.0

    Source code(tar.gz)
    Source code(zip)
  • v1.4(Jan 7, 2022)

    What's Changed

    • New feature: Pull images. by @m1k1o in https://github.com/m1k1o/neko-rooms/pull/32
    • Add control protection.
    • Add implicit control.
    • Implement extended room stats.
    • Implement resources for containers.
    • Add is outdated check.
    • GUI auto refresh data.

    Full Changelog: https://github.com/m1k1o/neko-rooms/compare/v1.3...v1.4

    Source code(tar.gz)
    Source code(zip)
  • v1.3(Jan 7, 2022)

    What's Changed

    • install: Simplify echo sequence by @whalehub in https://github.com/m1k1o/neko-rooms/pull/16
    • install: Code refactoring by @whalehub in https://github.com/m1k1o/neko-rooms/pull/17
    • Move labels to a single function by @m1k1o in https://github.com/m1k1o/neko-rooms/pull/24
    • Policies generator by @m1k1o in https://github.com/m1k1o/neko-rooms/pull/23
    • Added recreate button.
    • Use github actions to build images.
    • Allow usage without domain.
    • Add docker in docker docs.

    Full Changelog: https://github.com/m1k1o/neko-rooms/compare/v1.2...v1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.2(Jan 7, 2022)

    What's Changed

    • Allow persistent data for container by @m1k1o in https://github.com/m1k1o/neko-rooms/pull/9

    Full Changelog: https://github.com/m1k1o/neko-rooms/compare/v1.1...v1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1(Jan 7, 2022)

    What's Changed

    • Add missing Neko variants to drop-down menu by @whalehub in https://github.com/m1k1o/neko-rooms/pull/2
    • Add quick room button.
    • Implement room statistics.
    • Allow using multiple neko images.
    • Show used ports in GUI.
    • Add lobby.
    • Allow specifying custom ENV variables using API.
    • Fix Proxmox LXC hostname issue #3.
    • Pass empty nat1to1 to neko, issue #4.
    • Change restart policy, issue #5.

    Full Changelog: https://github.com/m1k1o/neko-rooms/compare/v1.0...v1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Mar 12, 2021)

Owner
Miroslav Šedivý
Miroslav Šedivý
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

RaaLabs 54 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

Eric Volpert 0 Dec 11, 2021
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

Marc Ole Bulling 500 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

null 7 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 ( password|bookmark|cookie|history|credit card|download

idiotc4t 117 Dec 23, 2022
🌭 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

Danilo Fragoso 1k 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

Charles Iliya Krempeaux 183 Jan 3, 2023
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.

Emin Arıcan 4 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

Dong Nguyen 3 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

Kevser Sırça 4 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

Tulir Asokan 9 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

Tim Kaye 193 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

Zhenghao Zhang 6.4k Dec 29, 2022
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

Moby 64.9k Jan 8, 2023
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

Moby 64.8k Jan 2, 2023
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

null 12 Oct 29, 2022
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

Slashbase 325 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

Emvi 6 Mar 4, 2022
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

IPFS 392 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

Chris Yoon 1 Jan 9, 2022