Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/innogames/deb-drop
Http fastCGI web server for provide simple and secure access for managing Debian packages in repositories
https://github.com/innogames/deb-drop
debian http http-server package package-manager
Last synced: 14 days ago
JSON representation
Http fastCGI web server for provide simple and secure access for managing Debian packages in repositories
- Host: GitHub
- URL: https://github.com/innogames/deb-drop
- Owner: innogames
- License: apache-2.0
- Created: 2017-02-17T11:31:48.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T10:22:23.000Z (3 months ago)
- Last Synced: 2024-10-14T16:41:04.026Z (23 days ago)
- Topics: debian, http, http-server, package, package-manager
- Language: Go
- Size: 2.23 MB
- Stars: 6
- Watchers: 18
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/innogames/deb-drop.svg?branch=master)](https://travis-ci.org/innogames/deb-drop)
# Description
Http fastCGI web server for provide simple and secure access for managing Debian packages in repositories Edit
## Restrictions
There are certain rules for package and config which need to be respected:* Nginx/Other web server must support FastCGI interface to interact with daemon. I highly recommend you to use https in front
* Name of package-file must satisfy next schema: \\_\\_\.deb. For example grafsy_1.3_amd64.deb
* Name of repository must satisfy next schema: \-\-\. For example oleg-stable-amd64## Parameters
* token: secret token to authenticate on server. If you perform actions on multiple repositories - token must work for all of them
* package: may mean package name for `Get` and `Copy` functions or file location for `Deploy`
* repos: one or multiple comma-separated repositories, on which you want to perform actions
* versions: in case of usage `Get` means how many package entries to return. In case of `Copy` and `Deploy` - how many packages to keep. Default is 5## Usage
There are 3 main use cases right now:
### Get
Get one or multiple entries of latest versions of given package (names with version)
```bash
curl "https:///?token=someToken&repos=someRepo-stable-amd64&package=test&versions=2"
test_0.100_all.deb
test_0.68_all.deb
```### Copy
Copy package from one repository to another
This might be useful for testing package on staging and then copy in to stable (here is from stable to jessie)
```bash
curl https:// -F "token=someToken" -F "repos=someRepo-stable-amd64,someRepo-jessie-amd64" -F "package=test_0.100_all.deb"
```### Deploy
Deploy package to repository
```bash
curl https:// -F "token=someToken" -F "repos=someRepo-stable-amd64,someRepo-jessie-amd64" -F "package=@/root/test_0.100_all.deb"
```## Config
The server reads `deb-drop.toml` during every request so no need to restart the server after a change here
Structure:
```toml
# Listen on
host = "localhost"
port = 9000
# Amount of MB which will be allocated for caching purposes
requestCacheSize = 10
logfile = "/var/log/deb-drop/deb-drop.log"
# Root of repository structure. Files will be copied by deb-drop to //
repoLocation = "/ftp/pool"
# Directory for temporary saved packages
tmpDir = "/tmp/deb-drop"
# Command to regenerate apt cache. We assume user of deb-drop knows how to regenerate Release files
# after the command " " repository + " " will be appended. For example "regenerate_repo.sh -r someRepo-stable-amd64"
repoRebuildCommand = "regenerate_repo.sh -r"[[token]]
value = "someToken"
owner = "somebody"
[[token.repo]]
name = "someRepo-stable-amd64"
[[token.repo]]
name = "someRepo-jessie-amd64"[[token]]
token = "anotherToken"
owner = "someoneElse"
[[token.repo]]
name = "someRepo-stable-amd64"
[[token.repo]]
name = "someRepo-jessie-amd64"
```