havarti är ett pittoreskt ostbutik som spelar fint i The Cloud.
Installation
Havarti är en Flask app med en Selleri dataöverföring. Allt som kan hantera det kan köra det, men här är några förslag på hur man kör den.
Heroku
Det normala sättet att vara värd Havarti är med Heroku, MongoHQ och S3.
& Nbsp; git clone git@github.com: jakebasile / Havarti.git && cd havarti
& Nbsp; Heroku appar: skapa --stack ceder
& Nbsp; Heroku addons: lägg mongohq: gratis
& Nbsp; Heroku config: lägg LAGRING = s3storage
& Nbsp; AWS_ACCOUNT_KEY_ID =
& Nbsp; AWS_SECRET_KEY_ID =
& Nbsp; MONGO_KEY = MONGOHQ_URL
& Nbsp; git tryck Heroku mästare
& Nbsp; Heroku skala web = 1 loader = 1
Du kan också använda Rackspace Cloud Files för att lagra cachen genom att ändra config linjen till:
& Nbsp; Heroku config: lägg LAGRING = rackspacestorage
& Nbsp; RACKSPACE_USERNAME =
& Nbsp; RACKSPACE_KEY =
& Nbsp; MONGO_KEY = MONGOHQ_URL
Lokal
Kanske du inte vill vara en cool katt och köra Havarti på Heroku. Du vill köra den lokalt. Här är ett sätt att göra det. Installera först Havarti någonstans:
& Nbsp; virtualenv havarti-install
& Nbsp; cd havarti-install
& Nbsp; source bin / aktiverar
& Nbsp; pip installera havarti gunicorn handledare
Detta kommer att installera Havarti, Gunicorn och Visor att köra allt. Nu, gör en supervisord.conf fil i denna katalog:
[Unix_http_server]
file = supervisord.sock
chmod = 0777
[Rpcinterface: handledare]
supervisor.rpcinterface_factory = supervisor.rpcinterface: make_main_rpcinterface
[Supervisord]
loggfil = loggar / supervisor.txt
LogLevel = info
pidfile = supervisord.pid
[Supervisorctl]
serverURL = Unix: //supervisord.sock
[Programmet: mongodb]
kommando = mongod
stdout_logfile = loggar / mongodb.txt
stderr_logfile = loggar / mongodb-err.txt
prioritet = 1
[Programmet: havarti]
kommando = bin / gunicorn -w 3 --preload -b 0.0.0.0:80 havarti: app
stdout_logfile = loggar / havarti.txt
stderr_logfile = loggar / havarti-err.txt
miljö = LAGRING = local
priority = 2
[Programmet: selleri]
kommando = bin / selleri --app = havarti arbetare -l info
stdout_logfile = loggar / celery.txt
stderr_logfile = loggar / selleri-err.txt
miljö = LAGRING = local
priority = 3
Detta förutsätter att du har MongoDB installerat tidigare. Sedan igen från den här katalogen, bara skapa katalogerna behövs och börja Handledare!
& Nbsp; mkdir loggar
& Nbsp; sudo mkdir -p / data / db
& Nbsp; sudo bin / supervisord
Du kan nu styra de processer genom supervisorctl. Kolla Handledare dokumentation för mer info om det.
Användning
Havarti fungerar som en proxy för PyPI, fånga upp önskemål om förpackningar. När det tar emot ett paket begäran följer en enkel beslutsträd:
- Är paketet / version cachade?
- Ja: servera cachade paket.
- Nej: Mark paket för caching, tjäna PyPI paketet.
Havarti kontroller för nya versioner med varje begäran, så att du alltid kan få den allra senaste versionen av vad paket du behöver (och sedan den nya versionen kommer att cachas från och med då).
Nedladdning
Bara ersätta din Havarti Index URL när du använder Pip. Din Havarti Index URL är var du värd Havarti + '/ i /', t.ex. 'Http://random-phrase-5000.herokuapp.com/i/'.
& Nbsp; pip installera -i http://random-phrase-5000.herokuapp.com/i/ skörda
Du kan lägga detta till din pip.conf att spara några tangenttryckningar.
Uppladdning
Du kan också ladda upp paket för att havarti direkt. Dessa kommer inte att skjutas till PyPI, men är tillgängliga för alla med Havarti url. För att ladda upp, bara använda din Havarti Ladda URL med setup.py. Din Havarti Ladda URL är var du värd Havarti + '/ u /', t.ex. 'Http://random-phrase-5000.herokuapp.com/u/'.
& Nbsp; Python setup.py sdist uppladdningen -r http://random-phrase-5000.herokuapp.com/u/
. Du kan också ställa in detta i ett .pypirc fil för att spara ännu mer tangenttryckningar
Krav :
- Python
Kommentarer hittades inte