Coder Social home page Coder Social logo

haxxnet / compose-examples Goto Github PK

View Code? Open in Web Editor NEW
4.8K 45.0 191.0 953 KB

Various Docker Compose examples of selfhosted FOSS and proprietary projects.

Home Page: https://haxxnet.github.io/Compose-Examples/

docker docker-compose selfhosted selfhosting awesome-docker automation awesome compose compose-files container

compose-examples's People

Contributors

askiiart avatar balag3 avatar dlen avatar gdwr avatar juanluisrp avatar l4rm4nd avatar laurentvetter 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  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  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  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  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  avatar  avatar  avatar

compose-examples's Issues

adguard-home requires port 3000 to be mapped for setup process

Hey,

First off, thanks for sharing, nice to see a collection of useful compose files!

I tried out the AdGuardHome one and ran into a bug. For the initial setup it seems that AdGuardHome listens on port 3000. However once the initial setup is done, it listens on port 80.

Not sure what the right way to handle this in the compose file is, but perhaps something like:

    ports:
      - 8080:80/tcp   # web interface after initial setup
      - 3000:3000/tcp  # web interface for setup (remove after setup)
      - 53:53/tcp
      - 53:53/udp

Or perhaps I've misunderstood what was happening?

IPsec VPN Server on Docker

What FOSS project is currently missing. Provide names and links.

Does an example docker-compose.yml exist?

  • Yes, managed by the FOSS maintainer. See links below.

Here some links to pre-existing docker-compose examples:

Here my personal working docker-compose.yml:

version: '3'

services:
  vpn:
    image: hwdsl2/ipsec-vpn-server
    environment:
      - VPN_IPSEC_PSK
      - VPN_USER
      - VPN_PASSWORD
      - VPN_ADDL_USERS
      - VPN_ADDL_PASSWORDS
      - VPN_DNS_SRV1
    restart: always
    ports:
      - "500:500/udp"
      - "4500:4500/udp"
    privileged: true
    hostname: ipsec-vpn-server
    container_name: ipsec-vpn-server
    volumes:
      - data:/etc/ipsec.d
      - /lib/modules:/lib/modules:ro
      
volumes:
  data:

Question about your example with traefik logs

Hi there,

does your example refer to the "access logs" or the "container logs"?

accessLog:                                                                                                                                                                                                                                                                                                           
  filePath: "/var/log/traefik/traefik-access.log"

or to:

log:                                                                                                                                                                                                                                                                                                                 
  level: ERROR                                                                                                                                                                                                                                                                                                       
  filepath: "/var/log/traefik/traefik-container.log"

Those are my configs - /var/log is mounted into the container at /var/log/traefik

Question about the grafana stack in regard to telegraf settings

Hi there and thanks for sharing your compose files. Would you mind adding a few more explanations about what needs to be done to run telegraf as non root user?

I saw the link to the blog post you added but I am unsure what I need to do to get your compose file from here up and running: https://github.com/Haxxnet/Compose-Examples/tree/main/examples/grafana-monitoring

Your compose file contains:
user: telegraf:998

What do I need to do so that telegraf has access to the volumes it needs?
Most of them seem to be root owned so I doubt thisd works out of the box.
Also, does telegraf:998 indicate the user name and UUID that will run inside the telegraf container? My docker host system obviously has no UUID 998 - any hints on what else needs to be done?

Add LLDAP as identity provider

What FOSS project is currently missing. Provide names and links.

Does an example docker-compose.yml exist?

  • [0] - Yes, managed by the FOSS maintainer. See links below.

Here some links to pre-existing docker-compose examples:

Here my personal working docker-compose.yml:

version: '3.3'

services:
  lldap:
    image: nitnelave/lldap:stable
    container_name: lldap
    volumes:
      - "./lldap:/data" # For the config file, server private key and the sqlite database.
    environment:
      - LLDAP_JWT_SECRET=CHANGEME
      - LLDAP_LDAP_USER_PASS=CHANGEME
      - LLDAP_LDAP_BASE_DN=dc=example,dc=com
      - PUID=1000
      - PGID=1000
    labels:
      - traefik.enable=true
      - traefik.http.routers.lldap.rule=Host(`lldap.${ROOT_DOMAIN}`)
      - traefik.http.routers.lldap.entrypoints=https
      - traefik.http.routers.lldap.tls=true
      - traefik.http.services.lldap-service.loadbalancer.server.port=17170
      - traefik.http.services.lldap-service.loadbalancer.server.scheme=http
      - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=50000000
      - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=50000000
      - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=50000000
      - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=50000000

Describe alternatives you've considered
Setting up an OpenLDAP is a nightmare. FreeIPA can work, but it's a bit overkill. Kanidm/KeyCloak don't offer a writeable LDAP layer.

Additional context
It comes with a snappy web interface and is lightweight in resources, and easy to install. Lots of examples on how to configure other services to interface with it.

[Request] for an example of Unifi-Network-Application from linuxserver.io

What FOSS project is currently missing. Provide names and links.

Does an example docker-compose.yml exist?

  • [0] - Yes, managed by the FOSS maintainer. See links below.

It exists... but requires external mongodb and I don't have the required knowledge to do that. I would like a ready to use example please.

Here some links to pre-existing docker-compose examples:

  • <link1>
    It's only on the readme section of the repo.

Describe alternatives you've considered
I've searched for someone with an example but it's too new and there are none.

Additional context
I know it's not FOSS, but currently I'm using unifi-controller from linuxserver.io but they say, they are going to deprecate that image. I need to be ready when the time comes.

Question about Grafana Monitoring set up

I've clone this fodler: /examples/grafana-monitoring

Including volume-data directory

When running docker-compose up -d I get this error on the grafana container

GF_PATHS_DATA='/var/lib/grafana' is not writable.

I've tried adding the folder before docker compose up and also not creating it. Both, same mistake

Thanks in advance

Questions about creating networks and global environment variables

Hey, thanks for these great examples (and for answers so many questions on Reddit), but I had another two questions:

  1. How do you create your Docker networks? (ie. proxy network)

In your Traefik example, it looks you like you are using an external 'proxy' network. Do you manually create this using the command-line or use a more convenient way? (ie. script)

Also, the Traefik example specifies host.docker.internal as 172.17.0.1 but that's the Docker system bridge network. Should this be 172.18.0.1 (or whatever your created network ip address is?)

  1. Where do you define your global environment variables? (ie. ${DOCKER_VOLUME_STORAGE})

I know you can create a .env file inside each Docker compose folder but that's a ton of duplication. I'm thinking you have to define it inside your user profile but that's a bit messy?

Thanks for the help!

Watchtower schedule follows golangs chron syntax

Hi,

first of all, cool repo!

regarding this line:

- WATCHTOWER_SCHEDULE=0 0 6 * * * # see https://crontab.guru/

Watchtower is written in go which uses 6 fields instead of 5. (stepped into this and lost a good hour when i first used watchtower ๐Ÿ˜Ž....)
https://crontab.guru/ is not supporting that.
See https://containrrr.dev/watchtower/arguments/#scheduling or https://pkg.go.dev/github.com/robfig/[email protected]#hdr-CRON_Expression_Format

Monkeytype with sign-in

First of all, thanks for a great resource! I've used several of your examples in my own homelab, and they work great. I installed Monkeytype today via your compose file within CasaOS, and it worked great. However, I'd like to use the "sign-in" feature (our office has recently become obsessed with who can type fastest, so I'd like to track our own office with monkeytype instead of the leaderboard on the main monkeytype site - hence the self-hosting). When I try to use the sign-in link, it doesn't go anywhere, so I assume that function doesn't work. Most likely there isn't a database and this is just the frontend. I've done some digging online, but can't seem to find anywhere to make this work. I realize this is probably outside the scope of your compose example, but just wondering if you knew. Thanks again.

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.