Giter Club home page Giter Club logo

repo-arm-server's Introduction

A.R.M - Arch Rollback Machine

Arch Linux Chinese Community A.R.M server app & configurations.

Configuration

Server requirements:

  • Linux OS
  • Bash & Rsync
  • Python 3.3, distribute
  • Node.js 0.10.13+ with NPM

Rsync

config file: Sync/.

Synchronize packages and make daily copies of package database file. Packages are synchronized under /var/www/repo-arm

archrepo2

config file: archrepo2-0.3.1/archrepo.ini

Will read packages in [testing], [core], [extra], [multilib-testing], [multilib], [community-testing] and [community].

pkginfo file path: /var/www/repo-arm/pkginfo.db

repo-arm-server

config file: repo-arm-server/config.js

HTTP API:

Exact package search

  • Method: POST
  • Path: /exact
  • Variables:
    • arch : i686 || x86_64
    • pkgname : Exact package name

Example using cURL:

curl --data-urlencode "arch=x86_64" --data-urlencode "pkgname=linux" http://arm.example.com/exact

Similiar package search

  • Method: POST
  • Path: /find
  • Variables:
    • arch : i686 || x86_64
    • pkgname : package name criteria

Example using cURL:

curl --data-urlencode "arch=x86_64" --data-urlencode "pkgname=linux" http://arm.example.com/find

Deprecated GET method

Pattern: /search?arch=$arch&pkgname=$pkgname where arch can be either i686 or x86_64, and $pkgname is exactly the package name(packages under any will be automatically added to results).

Note for GET method: Special symbol like + should be encoded to %2B, or it will be trimmed and wont return the correct result.

Returning results

Server will return results like: pkgrepo|pkgname|arch|pkgver|downloadurl|pkgrelease.

Note: if there are multiple versions, it will display as multiple lines. If no package found, server will simply return nothing.

Packages in specific date

  • For users seek for packages repo in a specific day, use the following url pattern as your repo address.

http://repo-arm.archlinuxcn.org/archive/year/month/day/repo/arch

e.g., for packages in [core] in the day of 2014/04/30, use http://repo-arm.archlinuxcn.org/archive/2014/04/30/core/$arch

Nginx

config file: NGINX/*.conf

A.R.M server url: repo-arm.archlinuxcn.org reverse proxy to 127.0.0.1:3000 (repo-arm-server)

A.R.M download url: repo-arm-download.archlinuxcn.org, webroot: /var/www/repo-arm/

TODO Implement daily-repo functionality.

repo-arm-server's People

Contributors

phoenixlzx avatar felixonmars avatar lilydjwg avatar

Watchers

James Cloos avatar Antyna avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.