Giter Site home page Giter Site logo

ginsoakedboy / thelounge-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thelounge/thelounge-docker

0.0 0.0 0.0 144 KB

๐Ÿณ Docker container for The Lounge, a self-hosted web IRC client

Home Page: https://hub.docker.com/r/thelounge/thelounge/

License: MIT License

Shell 40.74% Makefile 15.86% Dockerfile 43.39%

thelounge-docker's Introduction

The Lounge

Docker container for The Lounge, modern web IRC client designed for self-hosting

Website โ€ข Docs โ€ข Demo

#thelounge IRC channel on freenode" Total pulls on Docker Total stars on Docker


Overview

  • Modern features brought to IRC. Push notifications, link previews, new message markers, and more bring IRC to the 21st century.
  • Always connected. Remains connected to IRC servers while you are offline.
  • Cross platform. It doesn't matter what OS you use, it just works wherever Node.js runs.
  • Responsive interface. The client works smoothly on every desktop, smartphone and tablet.
  • Synchronized experience. Always resume where you left off no matter what device.

To learn more about configuration, usage and features of The Lounge, take a look at the website.

Running a container

One can get started quickly by using the example docker-compose.yml file. What is docker-compose?

$ docker-compose up --detach

or starting a container manually:

$ docker run --detach \
             --name thelounge \
             --publish 9000:9000 \
             --volume ~/.thelounge:/var/opt/thelounge \
             --restart always \
             thelounge/thelounge:latest

Executing commands in the container

Due to the way root permissions are dropped in the container, it's highly recommended to pass the --user node argument to any commands you execute in the container via Docker to ensure that file permissions retain the correct owner, like so:

$ docker exec --user node -it [container_name] thelounge add MyUser

Configuring identd

Since root permissions are dropped in the container the default port 113 can not be used as it is within the priviliged port range. Instead, use a higher port in your The Lounge identd configuration and map it back to 113 on your host system, for example like so:

$ docker run --detach \
             --name thelounge \
             --publish 113:9001 \
             --publish 9000:9000 \
             --volume ~/.thelounge:/var/opt/thelounge \
             --restart always \
             thelounge/thelounge:latest

Refer to the identd / oidentd docs for more detailed information.

Data directory

The Lounge reads and stores all of its configuration, logs and other data at /var/opt/thelounge.

By default, The Lounge will run using the node (1000:1000) system user in the container, leading to mounted data directories on the host system being owned by said user. This is customizable by changing the container user (see Container user (advanced usage)).

You will probably want to persist the data at this location by using one of the means to do so.

Adding users

Users can be added as follows:

$ docker exec --user node -it [container_name] thelounge add [username]

Note: without persisting data, added users will be lost when the container is removed.

Changing the port that The Lounge will be available on

To change the port which The Lounge will be available on, one will have to change the host port in the port mapping. To make The Lounge available on e.g. port 5000:

$ docker run --detach \
             --name thelounge \
             --publish 5000:9000 \ # Change host port to listen on port 5000
             --volume ~/.thelounge:/var/opt/thelounge \
             --restart always \
             thelounge/thelounge:latest

Container user (advanced usage)

By default, The Lounge will run using the node (1000:1000) user. This is customizable by running the container as a different, non-root, user. Beware that this may cause permission issues when a container process tries reading from the data disk unless you have manually set the permissions correctly.

Also keep in mind that whenever executing one-off commands in the container you need to explicitly set the correct user.

thelounge-docker's People

Contributors

astorije avatar bl1nk avatar geend avatar klausenbusk avatar mmlb avatar rjackson avatar williamboman avatar xpaw avatar zkanda avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.