Giter Club home page Giter Club logo

docker-znc's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.

znc

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/znc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Application Setup

To log in to the application, browse to http://<hostip>:6501.

  • Default User: admin
  • Default Password: admin change password ASAP.

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  znc:
    image: lscr.io/linuxserver/znc:latest
    container_name: znc
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/znc/config:/config
    ports:
      - 6501:6501
    restart: unless-stopped
docker run -d \
  --name=znc \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 6501:6501 \
  -v /path/to/znc/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/znc:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 6501 Port ZNC listens on.
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-v /config Persistent config files

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it znc /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f znc
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' znc
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/znc:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull znc
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d znc
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/znc:latest
  • Stop the running container:

    docker stop znc
  • Delete the container:

    docker rm znc
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-znc.git
cd docker-znc
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/znc:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 22.02.24: - Update build system for v1.9.0 (use cmake).
  • 23.12.23: - Rebase to Alpine 3.19.
  • 12.07.23: - Rebasing to Alpine 3.18.
  • 07.07.23: - Deprecate armhf. As announced here
  • 13.02.23: - Rebase to Alpine 3.17, migrate to s6v3.
  • 19.01.22: - Rebasing to alpine 3.15.
  • 01.06.20: - Rebasing to alpine 3.12.
  • 19.12.19: - Rebasing to alpine 3.11.
  • 02.11.19: - Add znc-palaver module.
  • 28.06.19: - Rebasing to alpine 3.10.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 22.02.19: - Rebasing to alpine 3.9.
  • 31.01.19: - Add pipeline logic and multi arch.
  • 30.01.19: - Add push and clientbuffer modules.
  • 17.08.18: - Rebase to alpine 3.8, use buildstage.
  • 03.01.18: - Deprecate cpu_core routine lack of scaling.
  • 07.12.17: - Rebase alpine linux 3.7.
  • 25.10.17: - Remove debug switch from run command.
  • 26.05.17: - Rebase alpine linux 3.6.
  • 06.02.17: - Rebase alpine linux 3.5.
  • 19.01.17: - Add playback module.
  • 07.01.17: - Add ca-certificates package, resolve sasl issues.
  • 07.12.16: - Use scanelf to determine runtime dependencies. Fix error with continuation.
  • 14.10.16: - Add version layer information.
  • 30.09.16: - Fix umask.
  • 11.09.16: - Add layer badges to README.
  • 28.08.16: - Add badges to README.
  • 20.08.16: - Rebase to alpine linux, move to main repository.
  • 11.12.15: - Initial Release.

docker-znc's People

Contributors

aptalca avatar bradfora avatar chbmb avatar drizuid avatar j0nnymoe avatar lonix avatar nemchik avatar omgimalexis avatar pecigonzalo avatar roxedus avatar smdion avatar sparklyballs avatar stateisbad avatar thelamer avatar thespad avatar tobbenb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-znc's Issues

Include Fish.so module in docker

Would be great if you could add Fish module [https://wiki.znc.in/Fish] to standard modules.
Many IRC channels still encrypt via ECB logic supported by Fish.
Integrated Crypt module only supports CBC encryption.

Thanks a lot!

Attached the compiled fish.so to be added to "/usr/lib/znc/"

Support automatic rebuild of modules

Hey,

I'd prefer to use the linuxserver image over the official one because they don't properly map the user IDs (and also have no intent on changing that). One feature that's really neat about the official one is that it rebuilds modules when you restart the container:

https://github.com/znc/znc-docker/blob/master/full/30-build-modules.sh

Would that be something you'd consider adding in this one too? It makes it very easy for people to just drop in the modules they want and they get rebuilt for the correct version without the need to add all of them to the LS image like right now (#23)

Thanks!

Add support for identd/oidentd

Add oidentd to the image and possibility to open the identd port to the container. This allows the identd module to operate correctly and oidentd can gracefully drop privileges.

linuxserver.io

[BUG] Source code is compiled with `--enable-python` indicating python support, but modpython refuses to load

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Loading modpython causes error Unable to load modpython: Unable to open module modpython: Error loading shared library libpython3.11.so.1.0: No such file or directory (needed by /usr/lib/znc/modpython.so), yet in the Dockerfile support is enabled during source code compilation?

--enable-python \

Expected Behavior

Loads modpython without errors

Steps To Reproduce

  1. Run /znc LoadMod modpython in irc client
  2. Error Unable to load modpython: Unable to open module modpython: Error loading shared library libpython3.11.so.1.0: No such file or directory (needed by /usr/lib/znc/modpython.so) shows, unable to load python module

Environment

- OS:Ubuntu 22.04.3 LTS
- How docker service was installed: apt, distro's package manager

CPU architecture

x86-64

Docker creation

znc:
    image: lscr.io/linuxserver/znc:latest
    container_name: znc
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Manila
    networks:
      int-static-br:
        ipv4_address: 172.18.0.42
    volumes:
      - ./config:/config
    ports:
      - 6501:6501
      - 6588:6588
    restart: unless-stopped

Container logs

Adding 1 servers... 
Loading network [p2p-network]
Loading network module [simple_away]... [/usr/lib/znc/simple_away.so]
Loading network module [stickychan]... [/usr/lib/znc/stickychan.so]
Loading network module [nickserv]... [/usr/lib/znc/nickserv.so]
Adding 1 servers... 
Loading network [rizon]
Loading network module [sasl]... [/usr/lib/znc/sasl.so]
Loading network module [simple_away]... [/usr/lib/znc/simple_away.so]
Loading network module [stickychan]... [/usr/lib/znc/stickychan.so]
Adding 1 servers... 
Loading network [superbits]
Loading network module [nickserv]... [/usr/lib/znc/nickserv.so]
Loading network module [simple_away]... [/usr/lib/znc/simple_away.so]
Loading network module [stickychan]... [/usr/lib/znc/stickychan.so]
Loading network module [perform]... [/usr/lib/znc/perform.so]
Adding 1 servers... 
Loading user module [chansaver]... 
Loading user module [controlpanel]... 
Staying open for debugging [pid: 3534]
ZNC 1.8.2 - https://znc.in

Add support for pointing to SSL certificate files through env vars

Desired Behavior

Setting environment variables such as CERT_KEY pointing to the location of an SSL certificate private key should append the relevant lines to the ZNC configuration.

Current Behavior

There is no way to point ZNC to SSL certificate files without manually editing the ZNC configuration file.

Alternatives Considered

Manual intervention, which works, but it would be more interesting to have some minimal configuration be possible directly through the Compose file. This way a fresh new ZNC could come up already pointing to the right SSL certificates.

While it's possible to connect to the web interface through SSL on a fresh install if you use a properly configured web server such as NGINX as a proxy, there's no way to point ZNC to your SSL certificate files through the webadmin module (at least as far as I know).

Add support for /Add module Clientbuffer

Desired Behavior:

https://wiki.znc.in/Clientbuffer
https://github.com/CyberShadow/znc-clientbuffer

On a lesser priority, adding any of the other external/third-party modules as well: https://wiki.znc.in/Category:External_Modules

Current Behavior
While I can manually place the plugin in the necessary folder, docker exec -it znc bash and then run the necessary commands, it would be nicer if these were either docker-mods or just inherently added into the znc docker image.

Alternative Behavior:
I noticed that Linuxserver's docker build for znc does not support/provide for rolling updates on as described in #29. This way, you could just drop modules in to a folder, and have them automatically build, rather than adding support for each.

Not on Docker Hub

I can't find your ZNC container on Docker Hub, is that on purpose?

[FEAT] Nightly builds

Is this a new feature request?

  • I have searched the existing issues

Wanted change

It would be great to have images with the latest changes from the main branch

Reason for change

The versions of the ZNC project have been stuck at 1.8.2 for the past 3 years, however, the main branch is still active up to this day

Proposed code change

No response

Unable to access web interface -- Connection refused.

Hello !
I've just setup this ZNC container,
But if in bind it to 6501 default port or another,
I'm unable to access to web interface, access is refused.
I'm using seven other docker images from linuxserver without problems :)
Thanks you for your amazing work !

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.