{"id":20748184,"url":"https://github.com/topi314/goapps","last_synced_at":"2025-09-27T20:31:16.179Z","repository":{"id":173432008,"uuid":"650497849","full_name":"topi314/goapps","owner":"topi314","description":"Simple Service Dashboard","archived":false,"fork":false,"pushed_at":"2024-02-19T16:00:35.000Z","size":722,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-09T05:27:22.219Z","etag":null,"topics":["dashboard","golang","homelab","oidc","services"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/topi314.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-06-07T07:40:57.000Z","updated_at":"2024-08-09T02:16:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa7e29fc-31b2-4d25-b7ce-b8af7eb8942c","html_url":"https://github.com/topi314/goapps","commit_stats":null,"previous_names":["topi314/goboard","topi314/goapps"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topi314%2Fgoapps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topi314%2Fgoapps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topi314%2Fgoapps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/topi314%2Fgoapps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/topi314","download_url":"https://codeload.github.com/topi314/goapps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234455951,"owners_count":18835667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","golang","homelab","oidc","services"],"created_at":"2024-11-17T08:15:52.221Z","updated_at":"2025-09-27T20:31:10.838Z","avatar_url":"https://github.com/topi314.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report](https://goreportcard.com/badge/github.com/topi314/goapps)](https://goreportcard.com/report/github.com/topi314/goapps)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/topi314/goapps)](https://golang.org/doc/devel/release.html)\n[![goapps License](https://img.shields.io/github/license/topi314/goapps)](LICENSE)\n[![goapps Version](https://img.shields.io/github/v/tag/topi314/goapps?label=release)](https://github.com/topi314/goapps/releases/latest)\n[![Docker](https://github.com/topi314/goapps/actions/workflows/docker.yml/badge.svg)](https://github.com/topi314/goapps/actions/workflows/docker.yml)\n[![Discord](https://discordapp.com/api/guilds/608506410803658753/embed.png?style=shield)](https://discord.gg/sD3ABd5)\n\n# goapps\n\nA simple service dashboard with custom icons, names and links.\nServices can be hidden depending on OIDC groups \u0026 users.\n\n\u003cimg src=\".github/preview.png\" alt=\"preview\"\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n- [Features](#features)\n- [Installation](#installation)\n  - [Docker](#docker)\n    - [Docker Compose](#docker-compose)\n  - [Manual](#manual)\n    - [Requirements](#requirements)\n    - [Build](#build)\n    - [Run](#run)\n- [Configuration](#configuration)\n- [License](#license)\n- [Contributing](#contributing)\n- [Contact](#contact)\n\u003c/details\u003e\n\n## Features\n\n- OIDC Authentication\n- Customizable icons, names, descriptions and links\n- Hide services depending on OIDC groups \u0026 users\n- Dark \u0026 Light mode\n- Responsive design\n- Docker support\n- Easy to use\n- No database required\n\n## Installation\n\n### Docker\n\nThe easiest way to deploy goapps is using docker with [Docker Compose](https://docs.docker.com/compose/). You can find the docker image on [Packages](https://github.com/topi314/goapps/pkgs/container/goapps).\n\n#### Docker Compose\n\nCreate a new `docker-compose.yml` file with the following content:\n\n```yaml\nversion: \"3.8\"\n\nservices:\n  goapps:\n    image: ghcr.io/topi314/goapps:latest\n    container_name: goapps\n    restart: unless-stopped\n    volumes:\n      - ./goapps.yml:/var/lib/goapps/goapps.yml:ro\n      - ./icons/:/var/lib/goapps/icons/:ro\n    ports:\n      - 80:80\n```\n\nFor `goapps.yml` see [Configuration](#configuration).\n\n```bash\ndocker-compose up -d\n```\n\n---\n\n### Manual\n\n\n#### Requirements\n\n- Go 1.22 or higher\n\n#### Build\n\n```bash\ngit clone https://github.com/topi314/goapps.git\ncd goapps\ngo build -o goapps\n```\n\nor\n\n```bash\ngo install github.com/topi314/goapps@latest\n```\n\n#### Run\n\n```bash\ngoapps --config=goapps.yml\n```\n\n---\n\n## Configuration\n\nCreate a new `goapps.yml` file with the following content:\n\n\n```yml\n  log:\n    # log level, either \"debug\", \"info\", \"warn\" or \"error\"\n    level: info\n    # log format, either \"json\" or \"text\"\n    format: text\n    # whether to add the source file and line to the log output\n    add_source: false\n\n  # enable or disable hot reload of templates and assets\n  dev_mode: false\n  # enable or disable debug profiler endpoint\n  debug: false\n\n  server:\n    # on which address \u0026 port to listen\n    listen_addr: 0.0.0.0:80\n    # the title of the page\n    title: goapps\n    # the icon of the page\n    icon: icon/goapps.png\n    # where to find the custom icons\n    icons_dir: ./icon\n\n  # auth configuration for OIDC\n  auth:\n    # if the site is http or https\n    secure: true\n    # the OIDC issuer URL\n    issuer_url: https://auth.example.com\n    # the client ID\n    client_id: goapps\n    # the client secret\n    client_secret: secret\n    # the redirect URL for the OIDC callback\n    redirect_url: https://example.com/callback\n    # the oidc audience which must be present in the id token\n    audience: goapps\n\n  # the services to display on the dashboard\n  services:\n      # the name of the service\n    - name: example\n      # the description of the service (optional)\n      description: example service\n      # the icon of the service (can also be a url to an external site) (optional)\n      icon: icon/example.png\n      # the link to the service\n      link: https://example.com\n      # the groups that can see the service (optional)\n      groups: [ group1 ]\n      # the users that can see the service (optional)\n      users: [ user1 ]\n}\n```\n\n---\n\n## License\n\ngoapps is licensed under the [Apache License 2.0](/LICENSE).\n\n---\n\n## Contributing\n\nContributions are always welcome! Just open a pull request or discussion and I will take a look at it.\n\n---\n\n## Contact\n\n- [Discord](https://discord.gg/sD3ABd5)\n- [Twitter](https://twitter.com/topi314)\n- [Email](mailto:git@topi.wtf)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopi314%2Fgoapps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftopi314%2Fgoapps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftopi314%2Fgoapps/lists"}