Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Integrate "homepage" service #54

Open
Sigri44 opened this issue Feb 27, 2024 · 4 comments
Open

[Feature] Integrate "homepage" service #54

Sigri44 opened this issue Feb 27, 2024 · 4 comments

Comments

@Sigri44
Copy link

Sigri44 commented Feb 27, 2024

Integrate homepage service :

https://github.com/gethomepage/homepage/

jfroment added a commit that referenced this issue Feb 27, 2024
@jfroment
Copy link
Owner

Hello :)

The homepage service has been added on the dev branch.
You can try it out right now by switching to the dev branch and enable the service:

git checkout dev
git pull

Then, enable the service in your config.yaml

# [...]
  - name: homepage
    enabled: true
    vpn: false
    traefik:
      enabled: true
      rules:
        - host: homepage.${TRAEFIK_DOMAIN} # or just ${TRAEFIK_DOMAIN}
          httpAuth: true
          internalPort: 3000

Then

./run-seedbox.sh

The Homepage configuration files can be set on the host in $HOST_CONFIG_PATH/homepage.

Please do not hesitate to give any feedback

@Sigri44
Copy link
Author

Sigri44 commented Feb 27, 2024

Thx !

I already have include it from custom config.

If you automatize /config/homepage/services.yaml, with seedbox, think can be a goooood usage !

Is the feature "docker integration" is working ?

  volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only

@jfroment
Copy link
Owner

Yes the socket is currently mounted in the new homepage service, so Docker integration should work.
That said I will maybe refactor this part and create a common service, such as docker-socket-proxy to secure socket access.
To automate the services.yaml creation, it would require a bit of refactoring directly inside the main script (run-seedbox.sh) to enable/disable services and populate the file, but it seems doable and indeed a nice feature to have.
I plan to make a release soon with all the latest changes, I will put this feature in the next "sprint", but feel free to open a PR if you have any insights.

@Sigri44
Copy link
Author

Sigri44 commented Feb 28, 2024

Yes the socket is currently mounted in the new homepage service, so Docker integration should work. That said I will maybe refactor this part and create a common service, such as docker-socket-proxy to secure socket access. To automate the services.yaml creation, it would require a bit of refactoring directly inside the main script (run-seedbox.sh) to enable/disable services and populate the file, but it seems doable and indeed a nice feature to have. I plan to make a release soon with all the latest changes, I will put this feature in the next "sprint", but feel free to open a PR if you have any insights.

If needed for inspiration, here is my config :

---
# For configuration options and examples, please see:
# https://gethomepage.dev/latest/configs/services

- Infra:
    - Portainer:
        icon: portainer.png
        href: https://portainer.DOMAIN
        description: Container management
        container: portainer
        widget:
          type: portainer
          url: https://portainer.DOMAIN
          key: xxxxxxxxxxxxxxxxx
          env: xxxxxxxxxxxxxxxxx
    - Traefik:
        icon: traefik.png
        href: https://traefik.DOMAIN
        description: Network management
        widget:
          type: traefik
          url: https://traefik.DOMAIN
          username: xxxxxxxxxxxxxxxxx
          password: xxxxxxxxxxxxxxxxx
    - Tdarr:
        icon: tdarr.png
        href: https://tdarr.DOMAIN
        description: Optimizer
        widget:
          type: tdarr
          url: http://xx.xx.xx.xx:8266

- Management:
    - Overseerr:
        icon: overseerr.png
        href: https://overseerr.DOMAIN
        description: Media management
        showStats: true
        widget:
          type: overseerr
          url: https://overseerr.DOMAIN
          key: xxxxxxxxxxxxxxxxx
    - Plex:
        icon: plex.png
        href: https://plex.DOMAIN
        description: Media player
        widget:
          type: plex
          url: https://plex.DOMAIN
          key: xxxxxxxxxxxxxxxxx
    - Jellyfin:
        icon: jellyfin.png
        href: https://jellyfin.DOMAIN
        description: Media player
        widget:
          type: jellyfin
          url: https://jellyfin.DOMAIN
          key: xxxxxxxxxxxxxxxxx
          enableNowPlaying: true # optional, defaults to true
    - Tautulli:
        icon: tautulli.png
        href: https://tautulli.DOMAIN
        description: Analytics
        widget:
          type: tautulli
          url: https://tautulli.DOMAIN
          key: xxxxxxxxxxxxxxxxx

- Servarr:
    - Deluge:
        icon: deluge.png
        href: https://deluge.DOMAIN
        description: Media downloader
        showStats: true
        container: deluge
        widget:
          type: deluge
          url: http://xx.xx.xx.xx:8112
          password: xxxxxxxxxxxxxxxxx
    - Prowlarr:
        icon: prowlarr.png
        href: https://prowlarr.DOMAIN
        description: Tracker management
        widget:
          type: prowlarr
          url: http://xx.xx.xx.xx:9696
          key: xxxxxxxxxxxxxxxxx
    - Sonarr:
        icon: sonarr.png
        href: https://sonarr.DOMAIN
        description: Series management
        widget:
          type: sonarr
          url: http://xx.xx.xx.xx:8989
          key: xxxxxxxxxxxxxxxxx
    - Radarr:
        icon: radarr.png
        href: https://radarr.DOMAIN
        description: Movie management
        widget:
          type: radarr
          url: http://xx.xx.xx.xx:7878
          key: xxxxxxxxxxxxxxxxx

IP is needed for url because use only container name like 'sonarr' don't work.

Homepage log :
error: <dockerStatusService> Error: connect EACCES /var/run/docker.sock at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1555:16)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants