# fuku [](https://badge.fury.io/py/fuku)
Fuku is a (young) system to help manage web application infrastructure using AWS. It’s aim is to replicate some of the simplicity of Heroku without the cost.
## Requirements:
Please install the following requirements prior to installing Fuku:
Python 3.6
ssh
ssh-agent
gpg
psql
awscli
## Installation
Standard pip install:
`bash pip install fuku `
## Quickstart for new configurations
Configure your AWS credentials as usual (aws configure).
fuku profile ls to see available profiles.
[optional] If you need multiple AWS profiles, create a new profile by editing the file ~/.aws/credentials and copying the default lines.
fuku profile sl <profile> to select the active AWS profile for Fuku.
fuku profile bucket <bucket> to set a workspace for Fuku.
fuku region ls to see available regions.
fuku region sl <region> to select a region.
fuku cluster mk <name> to create a cluster.
## Quickstart for existing configurations
Configure your AWS credentials as usual (aws configure).
fuku profile ls to see available profiles.
fuku profile sl <name> to select your profile.
fuku profile bucket <bucket> to set a workspace for Fuku.
fuku region ls to see available regions.
fuku region sl <region> to select a region.
fuku cluster ls to see available clusters.
fuku cluster sl <cluster> to select a cluster.
Enter password to access cluster key file.
fuku app ls to see available apps.
fuku app sl <app> to select an app.
fuku pg ls to see available DBs.
fuku pg sl <db> to select a DB.
Enter password to access PGPASS file.
At this point you have configured your session for a particular cluster, application, and database. For convenience it’s best to cache the session for easy retrieval:
fuku session sv <name>
fuku session ld <name>
## Downloading current DB
To download the current database:
fuku pg dump <dumpfile> <dump_path>
## Upload DB
To overwrite a database with new content (CAUTION):
fuku pg restore <filename>
## SSH into a node
To access one of the nodes in the cluster directly:
fuku node ssh <name>
## Run an arbitrary command
To run a command:
fuku service run <task> <command>
This attaches to a running container from the specified task, then runs the provided command.
## Logging
To control logs printed use the flag –log, it uses the available logging levels (CRITICAL, WARNING, INFO, DEBUG)
fuku –log=DEBUG <command>
By default the logs are set to WARNING.
## Running fuku in Sub-processes
The default behaviour is to assume that one user is on a single app and/or DB instance at all time.
However if you need to spawn multiple processes running commands on different app and/or DB instance, you can use the –app or –db flags.
For example, we can run in parallel:
fuku –app=first_app service wait bg; fuku –app=first_app service run bg “./manage.py migrate”;
fuku –app=second_app service wait bg; fuku –app=second_app service run bg “./manage.py migrate”;
Metadata
Release files for fuku 0.0.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fuku-0.0.33-py3-none-any.whl | Python 3 | none | any | Details |
Release files / fuku-0.0.33-py3-none-any.whl
| Download URL | fuku-0.0.33-py3-none-any.whl |
|---|---|
| Size | 54.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe705483ec8b307691bd38c6ce650ee73cc27d12a666a7c4f73f5fc78cb3ebbe
|
|
BLAKE2b-256 checksum How to use checksums |
b5d5d5d82ae5e7a88311afa821198a2d6af1197885a1dee5ff436302c7eb2cbd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |