]> Cypherpunks.ru repositories - gocheese.git/blob - README
Initial commit
[gocheese.git] / README
1 GoCheese is Python private package repository and caching proxy.
2
3 It serves two purposes:
4
5 * hosting of private locally uploaded packages
6   (conforming to PEP-0503 (Simple Repository API))
7 * proxying and caching of missing packages from upstream PyPI
8
9 To use it, just configure your pip.conf:
10
11     [install]
12     index-url = http://gocheese.host:8080/simple/
13
14 You can upload packages to it with twine:
15
16     twine upload
17         --repository-url http://gocheese.host:8080/simple/ \
18         --username spam \
19         --password foo dist/tarball.tar.gz
20
21 Root directory has the following hierarchy:
22
23     root
24       +-- public-package
25       |     +- public-package-0.1.tar.gz.sha256
26       |     +- public-package-0.2.tar.gz
27       |     +- public-package-0.2.tar.gz.sha256
28       +-- private-package
29       |     +- .private
30       |     +- private-package-0.1.tar.gz
31       |     +- private-package-0.1.tar.gz.sha256
32       |...
33
34 Each directory is a package name. When you trie to list unexistent
35 directory contents (you are downloading package you have not seen
36 before), then GoCheese will download all its package versions with
37 checksums and write then in .sha256 files. So you know what versions are
38 available at the moment. When you asks for particular package, then its
39 tarball is really downloaded and verified against the checksum. For
40 example in the root directory above we have downloaded only
41 public-package-0.2. Private packages contain .private file, indicating
42 that it must not be asked in PyPI if required version is missing.
43
44 -refresh URL behaves the same way as -simple one, but is always
45 refreshes package versions from PyPI when listing it. You can use it to
46 forcefully update package version.
47
48 Initially it was created as a fork of https://github.com/c4s4/cheeseshop,
49 but nearly all the code was rewritten. It has huge differences:
50
51 * no TLS support
52 * no YAML configuration, just command-line arguments
53 * no package overwriting ability
54 * no MD5-hashed passwords
55 * atomic packages store on filesystem
56 * proxying and caching of missing packages
57 * SHA256-checksummed packages (both uploaded and proxied one)
58
59 GoCheese is free software: see the file COPYING for copying conditions.