{"id":16553074,"url":"https://github.com/sdumetz/aptly-web-ui","last_synced_at":"2025-03-21T10:32:15.179Z","repository":{"id":137996496,"uuid":"51004034","full_name":"sdumetz/aptly-web-ui","owner":"sdumetz","description":"Simple web UI for aptly","archived":false,"fork":false,"pushed_at":"2017-09-21T09:22:42.000Z","size":1168,"stargazers_count":37,"open_issues_count":4,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-01T05:32:14.371Z","etag":null,"topics":["apt","aptly","deb","nodejs"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sdumetz.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,"publiccode":null,"codemeta":null}},"created_at":"2016-02-03T14:14:13.000Z","updated_at":"2024-11-15T17:43:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"963052bd-3633-4623-8c78-b7b04287f8b3","html_url":"https://github.com/sdumetz/aptly-web-ui","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdumetz%2Faptly-web-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdumetz%2Faptly-web-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdumetz%2Faptly-web-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdumetz%2Faptly-web-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sdumetz","download_url":"https://codeload.github.com/sdumetz/aptly-web-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244135935,"owners_count":20403798,"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":["apt","aptly","deb","nodejs"],"created_at":"2024-10-11T19:46:58.750Z","updated_at":"2025-03-21T10:32:15.163Z","avatar_url":"https://github.com/sdumetz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aptly-web-ui\nSimple web UI for aptly with no backend that connect directly to aptly.\n\nIt provides access to the following functions :\n- Upload new packages and add to repos\n- Migrate packages from one repo to another\n- Show packages list\n- Show a package's available versions, description, etc...\n- Remove a package or copy to another repository.\n\nIt's under active development and any requests are welcomed.\n\n## Look and feel\n\n![web-ui home page](https://cloud.githubusercontent.com/assets/445200/20797691/33077d76-b7dc-11e6-8cdf-7f818c4eff70.png)\n\nIt should be mobile friendly but it's not the main concern right now so it must have some rough edges.\n\n## Installation\n\nDecompress the dist [archive](https://github.com/sdumetz/aptly-web-ui/releases/latest) in aptly root folder (default to ~/.aptly/public). It should look like this :\n\n    ~/.aptly/public\n      - dists\n      - pool\n      - ui\n\nOlder releases are available on [github](https://github.com/sdumetz/aptly-web-ui/releases).\n\nLatest commits on `master` branch should always be \"usable\". You can clone the repository and build it using nodejs (*\u003e=6.0.0*):\n\n```\ngit clone git@github.com:sdumetz/aptly-web-ui.git\nnpm install\n./deploy.sh\n```\nthen extract `aptly-web-ui.tar.gz` to `~/.aptly/public`. All `deploy.sh` do is running `npm run build` and packaging the files.\n\n### Configuration using nginx\n\nNginx config to serve apt repo + interface :\n```\nserver {\n  listen   80;\n  root /var/aptly/.aptly/public;\n  index index.html index.htm;\n\n  access_log /var/log/nginx/packages.access.log  log_access;\n  error_log /var/log/nginx/packages.error.log error;\n\n  server_name my-domain.net;\n  autoindex off;\n  location / {\n    try_files $uri $uri/;\n\n    allow 192.168.1.0/24;\n    deny all;\n  }\n  location /ui/ {\n    try_files $uri $uri/ /ui/index.html;\n    autoindex off;\n  }\n  location /dist/ {\n    autoindex on;\n  }\n  location /pool/ {\n    autoindex on;\n  }\n  location /api/ {\n    proxy_set_header X-Real-IP $remote_addr;\n    proxy_set_header X-Forwarded-For $remote_addr;\n    proxy_set_header Host $host;\n    proxy_pass http://127.0.0.1:8080;\n  }\n\n}\n```\n\nActivate it and navigate to `your-domain.net/ui/`.\n\n### Configuration using nodejs\n\nYou can use a nodejs service as a proxy between your frontend and aptly's API.\n\nIt's done setting some environment variables :\n\n```\n    export APTLY_WEB_UI_PROXY_API_URL=http://localhost:8080 #your aptly install\n    export APTLY_WEB_UI_PORT=8081  #web ui port\n    npm start\n```\n\nYou can create a systemd service unit using `Environment=APTLY_WEB_UI_PROXY_API_URL=http://localhost:8080`.\n\nThe only facility provided by the proxy at the moment is [http basic auth](https://github.com/sdumetz/aptly-web-ui/commit/3a20f4fdde47edbf4cb57889f4b8c89b23b39440).\n\n## Security\n\nThis solution is compatible with external auth methods like [oauth_proxy](https://github.com/bitly/oauth2_proxy). There is currently no read-only interface to serve to unauthorized users.\n\n## Contribute\n\nThis is developped using React and React-router.\n\nCurrently very few routes are implemented. snapshot management would be nice but require some work to be done.\n\n\n### BUGS\n\n- Will always fetch packages list even if we go straight to a package's URL. (Maybe not a problem : Need to check load on aptly to generate large packages lists).\n\n\nOriginal Author : [Sebastien DUMETZ](https://sdumetz.github.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdumetz%2Faptly-web-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdumetz%2Faptly-web-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdumetz%2Faptly-web-ui/lists"}