neko_rooms

package module
v1.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2022 License: Apache-2.0 Imports: 13 Imported by: 0

README

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

Zero-knowledge installation

If you don't have any clue about docker and stuff but only want to have fun with friends in a shared browser, we got you covered!

  • Rent a VPS with public IP and OS Ubuntu.
  • Get a domain name pointing to your IP (you can even get some for free).
  • Run install script and follow instructions.
wget -O neko-rooms.sh https://raw.githubusercontent.com/m1k1o/neko-rooms/master/install
sudo bash neko-rooms.sh

How to start

You need to have installed Docker and docker-compose. You need to have a 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/.

Do I need to use traefik?
  • Traefik needs to be used to forward traffic to the rooms. You can put nginx in front of it, but not replace it.
  • See example configuration for nginx.

You can use docker-compose.http.yml that will expose this service to 8080 or any port. Authentication is optional. Start it quickly with docker-compose -f docker-compose.http.yml up -d.

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 (HTTPS only)

Create acme.json

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

Update your email in traefik/traefik.yml.

Download images / update

You need to pull all your images, that you want to use with neko-room. Otherwise, you might get this error: Error response from daemon: No such image: (see issue #1).

docker pull m1k1o/neko:firefox
docker pull m1k1o/neko:chromium
# etc...

If you want to update neko image, you need to pull new image and recreate all rooms, that use old image. To update neko rooms, simply run:

docker-compose pull
docker-compose up -d
Enable storage

You might have encountered this error:

Mounts cannot be specified because storage is disabled or unavailable.

If you didn't specify storage yet, you can do it using this tutorial.

Docs

For more information visit docs.

Roadmap:
  • add GUI
  • add HTTPS support
  • add authentication provider for traefik
  • allow specifying custom ENV variables
  • allow mounting directories for persistent data
  • add upgrade button
  • auto pull images, that do not exist
  • add bearer token to for API
  • add docker SSH / TCP support
  • add docker swarm support
  • add k8s support

Documentation

Index

Constants

View Source
const Header = `` /* 452-byte string literal not displayed */

Variables

This section is empty.

Functions

This section is empty.

Types

type Configs

type Configs struct {
	Root   *config.Root
	Server *config.Server
	API    *config.API
	Room   *config.Room
}

type MainCtx

type MainCtx struct {
	Version *Version
	Configs *Configs
	// contains filtered or unexported fields
}
var Service *MainCtx

func (*MainCtx) Preflight

func (main *MainCtx) Preflight()

func (*MainCtx) ServeCommand

func (main *MainCtx) ServeCommand(cmd *cobra.Command, args []string)

func (*MainCtx) Shutdown

func (main *MainCtx) Shutdown()

func (*MainCtx) Start

func (main *MainCtx) Start()

type Version

type Version struct {
	Major     string
	Minor     string
	Patch     string
	GitCommit string
	GitBranch string
	BuildDate string
	GoVersion string
	Compiler  string
	Platform  string
}

func (*Version) Details

func (i *Version) Details() string

func (*Version) String

func (i *Version) String() string

Directories

Path Synopsis
cmd
internal
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL