{"id":29639524,"url":"https://github.com/openlistteam/openlist-apt","last_synced_at":"2026-06-14T07:33:31.603Z","repository":{"id":303613511,"uuid":"1016094991","full_name":"OpenListTeam/OpenList-APT","owner":"OpenListTeam","description":"OpenList APT Repository","archived":false,"fork":false,"pushed_at":"2026-05-26T16:20:42.000Z","size":43,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T07:33:18.584Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenListTeam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-08T13:34:03.000Z","updated_at":"2026-05-26T16:20:43.000Z","dependencies_parsed_at":"2025-07-08T14:45:10.232Z","dependency_job_id":"2fe974c5-6650-4b58-aeb8-034bfaba558a","html_url":"https://github.com/OpenListTeam/OpenList-APT","commit_stats":null,"previous_names":["suyunmeng/openlist-apt","openlistteam/openlist-apt"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/OpenListTeam/OpenList-APT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenListTeam%2FOpenList-APT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenListTeam%2FOpenList-APT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenListTeam%2FOpenList-APT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenListTeam%2FOpenList-APT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenListTeam","download_url":"https://codeload.github.com/OpenListTeam/OpenList-APT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenListTeam%2FOpenList-APT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34313515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-07-21T20:38:05.110Z","updated_at":"2026-06-14T07:33:31.576Z","avatar_url":"https://github.com/OpenListTeam.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenList APT Repository\n\nThis repository contains the Debian package configuration for OpenList, designed to automatically create `.deb` packages for Ubuntu/Debian systems. It monitors the main OpenList repository for new releases and automatically builds corresponding DEB packages.\n\n## Features\n\n- **Automatic Version Detection**: Uses GitHub API to detect new OpenList releases\n- **Multi-Architecture Support**: Builds for both `amd64` and `arm64` architectures\n- **Automated Binary Download**: Downloads the latest binaries from OpenList releases\n- **System Integration**: \n  - Installs to `/var/lib/openlist`\n  - Creates systemd service for automatic startup\n  - Creates wrapper script at `/usr/bin/openlist` for command-line access\n  - Automatically adds `--force-bin-dir` to all commands\n  - Manages user/group creation and cleanup\n- **GitHub Releases**: Automatically creates releases with DEB packages\n- **PPA Support**: Optional upload to Launchpad PPA\n\n## Repository Structure\n\n```\n├── .github/workflows/\n│   └── build-deb.yml    # GitHub Actions workflow\n├── debian/\n│   ├── control          # Package metadata and dependencies\n│   ├── changelog        # Package version history\n│   ├── compat          # Debhelper compatibility level\n│   ├── rules           # Build rules (extracts pre-downloaded binaries)\n│   ├── openlist.install # File installation mappings\n│   ├── openlist.service # Systemd service definition\n│   ├── postinst        # Post-installation script\n│   ├── prerm           # Pre-removal script\n│   └── postrm          # Post-removal script\n├── build.sh            # Local build script\n└── README.md           # This file\n```\n\n## Automated Workflow\n\nThe GitHub Actions workflow:\n\n1. **Daily Check**: Runs daily at 2 AM UTC to check for new OpenList releases\n2. **Version Detection**: Uses GitHub API to get the latest release from `OpenListTeam/OpenList`\n3. **Duplicate Check**: Verifies if this version was already built\n4. **Binary Download**: Downloads `openlist-linux-amd64.tar.gz` and `openlist-linux-arm64.tar.gz`\n5. **Package Building**: Creates DEB packages for both architectures\n6. **Release Creation**: Creates a GitHub release with the DEB packages\n7. **PPA Upload**: Optionally uploads to Launchpad PPA (if configured)\n\n## Local Building\n\n### Prerequisites\n\n- `jq` (for JSON parsing)\n- `wget` or `curl`\n- Debian packaging tools (`debhelper`, `devscripts`, `build-essential`)\n\n### Build Latest Version\n\n```bash\nchmod +x build.sh\n./build.sh\n```\n\n### Build Specific Version\n\n```bash\n./build.sh --version 1.2.3 --arch amd64\n```\n\n### Build Script Options\n\n- `-v, --version VERSION`: Set package version (default: fetch latest from GitHub)\n- `-a, --arch ARCH`: Set architecture (amd64 or arm64, default: amd64)\n- `-d, --debug`: Enable debug output\n- `-h, --help`: Show help message\n\n## GitHub Actions Configuration\n\n### Automatic Triggers\n\n- **Schedule**: Daily at 2 AM UTC\n- **Manual**: Via workflow dispatch\n\n### Required Secrets (for PPA upload)\n\nConfigure these secrets in your GitHub repository settings:\n\n- `GPG_PRIVATE_KEY`: Your GPG private key for signing packages\n- `GPG_PASSPHRASE`: Passphrase for your GPG key\n- `GPG_KEY_ID`: Your GPG key ID\n- `LAUNCHPAD_EMAIL`: Your Launchpad email address\n\n### Repository Variables\n\n- `ENABLE_PPA_UPLOAD`: Set to `'true'` to enable PPA uploads (optional)\n\n## Installation\n\n### From GitHub Releases\n\n```bash\n# Download latest release\nwget https://github.com/OpenListTeam/OpenList-APT/releases/latest/download/openlist_VERSION-1_amd64.deb\n\n# Install\nsudo dpkg -i openlist_VERSION-1_amd64.deb\nsudo apt-get install -f  # Fix any dependency issues\n```\n\n### From PPA (if configured)\n\n```bash\nsudo add-apt-repository ppa:openlist/ppa\nsudo apt update\nsudo apt install openlist\n```\n\n## Service Management\n\nThe package installs a systemd service that starts automatically:\n\n```bash\n# Check service status\nsudo systemctl status openlist\n\n# Start/stop/restart service\nsudo systemctl start openlist\nsudo systemctl stop openlist\nsudo systemctl restart openlist\n\n# View logs\nsudo journalctl -u openlist -f\n```\n\n## Command Line Usage\n\nAfter installation, OpenList is available in the PATH:\n\n```bash\nopenlist --help\nopenlist server\nopenlist version\n```\n\n**Important**: The `/usr/bin/openlist` command is a wrapper script that automatically adds `--force-bin-dir` to all commands. So when you run:\n- `openlist server` → actually executes `openlist server --force-bin-dir`\n- `openlist --help` → actually executes `openlist --help --force-bin-dir`\n- Any command → automatically gets `--force-bin-dir` appended\n\nThe actual binary is located at `/var/lib/openlist/openlist` with a wrapper script at `/usr/bin/openlist`.\n\n## File Locations\n\n- **Binary**: `/var/lib/openlist/openlist`\n- **Wrapper Script**: `/usr/bin/openlist`\n- **Working Directory**: `/var/lib/openlist`\n- **Service File**: `/etc/systemd/system/openlist.service`\n- **User/Group**: `openlist:openlist`\n\n## Binary Sources\n\nThe package automatically downloads the appropriate binary from:\n- AMD64: `https://github.com/OpenListTeam/OpenList/releases/latest/download/openlist-linux-amd64.tar.gz`\n- ARM64: `https://github.com/OpenListTeam/OpenList/releases/latest/download/openlist-linux-arm64.tar.gz`\n\n## Uninstallation\n\n```bash\n# Remove package but keep configuration\nsudo apt remove openlist\n\n# Remove package and all configuration/data\nsudo apt purge openlist\n```\n\n## Troubleshooting\n\n### Service Won't Start\n\nCheck the service logs:\n```bash\nsudo journalctl -u openlist -n 50\n```\n\n### Permission Issues\n\nEnsure proper ownership:\n```bash\nsudo chown -R openlist:openlist /var/lib/openlist\nsudo chmod 755 /var/lib/openlist/openlist\n```\n\n### Wrapper Script Issues\n\nCheck the wrapper script:\n```bash\ncat /usr/bin/openlist\n```\n\nIf the wrapper script is missing or corrupted, recreate it:\n```bash\nsudo tee /usr/bin/openlist \u003c\u003c 'EOF'\n#!/bin/bash\n# OpenList wrapper script\n# Automatically adds --force-bin-dir to all commands\n\nBINARY=\"/var/lib/openlist/openlist\"\n\n# Check if the binary exists\nif [ ! -x \"$BINARY\" ]; then\n    echo \"Error: OpenList binary not found at $BINARY\"\n    exit 1\nfi\n\n# Check if --force-bin-dir is already present in arguments\nif [[ \"$*\" != *\"--force-bin-dir\"* ]]; then\n    # Add --force-bin-dir to all commands\n    exec \"$BINARY\" \"$@\" --force-bin-dir\nelse\n    # --force-bin-dir already present, pass through as-is\n    exec \"$BINARY\" \"$@\"\nfi\nEOF\nsudo chmod +x /usr/bin/openlist\n```\n\n### Direct Binary Access\n\nIf you need to run the binary without the wrapper script:\n```bash\n/var/lib/openlist/openlist --help\n/var/lib/openlist/openlist server\n```\n\n## Development\n\n### Testing Locally\n\n1. Clone this repository\n2. Run the build script: `./build.sh`\n3. Install the generated package: `sudo dpkg -i ../openlist_*.deb`\n4. Test the service: `sudo systemctl status openlist`\n5. Test the wrapper: `openlist --help`\n\n### Contributing\n\n1. Fork this repository\n2. Make your changes\n3. Test locally\n4. Submit a pull request\n\n## License\n\nThis packaging configuration follows the same license as the main OpenList project.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenlistteam%2Fopenlist-apt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenlistteam%2Fopenlist-apt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenlistteam%2Fopenlist-apt/lists"}