{"id":21189275,"url":"https://github.com/uptick/python-fuku","last_synced_at":"2025-06-30T20:05:01.523Z","repository":{"id":57432548,"uuid":"79705667","full_name":"uptick/python-fuku","owner":"uptick","description":"Easier Docker based deployments to AWS.","archived":false,"fork":false,"pushed_at":"2018-06-20T03:10:22.000Z","size":170,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-28T10:48:47.357Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uptick.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-22T08:49:41.000Z","updated_at":"2018-06-20T03:10:24.000Z","dependencies_parsed_at":"2022-09-17T03:50:12.773Z","dependency_job_id":null,"html_url":"https://github.com/uptick/python-fuku","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/uptick/python-fuku","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptick%2Fpython-fuku","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptick%2Fpython-fuku/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptick%2Fpython-fuku/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptick%2Fpython-fuku/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uptick","download_url":"https://codeload.github.com/uptick/python-fuku/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptick%2Fpython-fuku/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262453160,"owners_count":23313586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T18:51:23.419Z","updated_at":"2025-06-30T20:05:01.455Z","avatar_url":"https://github.com/uptick.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuku\n[![PyPI version](https://badge.fury.io/py/fuku.svg)](https://badge.fury.io/py/fuku)\n\nFuku is a (young) system to help manage web application infrastructure\nusing AWS. It's aim is to replicate some of the simplicity of Heroku without\nthe cost.\n\n\n## Requirements:\n\nPlease install the following requirements prior to installing Fuku:\n\n * Python 3.6\n\n * ssh\n\n * ssh-agent\n\n * gpg\n\n * psql\n\n * awscli\n\n\n## Installation\n\nStandard pip install:\n\n```bash\npip install fuku\n```\n\n\n## Quickstart for new configurations\n\n 1. Configure your AWS credentials as usual (aws configure).\n\n 2. `fuku profile ls` to see available profiles.\n\n    [optional] If you need multiple AWS profiles, create a new profile by editing the file `~/.aws/credentials` and copying the default lines.\n    \n    `fuku profile sl \u003cprofile\u003e` to select the active AWS profile for Fuku.\n\n 3. `fuku profile bucket \u003cbucket\u003e` to set a workspace for Fuku.\n\n 4. `fuku region ls` to see available regions.\n\n    `fuku region sl \u003cregion\u003e` to select a region.\n\n 5. `fuku cluster mk \u003cname\u003e` to create a cluster.\n\n\n## Quickstart for existing configurations\n\n 1. Configure your AWS credentials as usual (aws configure).\n\n 2. `fuku profile ls` to see available profiles.\n\n    `fuku profile sl \u003cname\u003e` to select your profile.\n\n 3. `fuku profile bucket \u003cbucket\u003e` to set a workspace for Fuku.\n\n 4. `fuku region ls` to see available regions.\n\n    `fuku region sl \u003cregion\u003e` to select a region.\n\n 5. `fuku cluster ls` to see available clusters.\n\n    `fuku cluster sl \u003ccluster\u003e` to select a cluster.\n\n    Enter password to access cluster key file.\n\n 6. `fuku app ls` to see available apps.\n\n    `fuku app sl \u003capp\u003e` to select an app.\n\n 7. `fuku pg ls` to see available DBs.\n\n    `fuku pg sl \u003cdb\u003e` to select a DB.\n\n    Enter password to access PGPASS file.\n\nAt this point you have configured your session for a particular cluster, application,\nand database. For convenience it's best to cache the session for easy retrieval:\n\n `fuku session sv \u003cname\u003e`\n\n `fuku session ld \u003cname\u003e`\n\n\n## Downloading current DB\n\nTo download the current database:\n\n `fuku pg dump \u003cdumpfile\u003e \u003cdump_path\u003e`\n\n\n## Upload DB\n\nTo overwrite a database with new content (CAUTION):\n\n `fuku pg restore \u003cfilename\u003e`\n\n\n## SSH into a node\n\nTo access one of the nodes in the cluster directly:\n\n `fuku node ssh \u003cname\u003e`\n\n\n## Run an arbitrary command\n\nTo run a command:\n\n `fuku service run \u003ctask\u003e \u003ccommand\u003e`\n\nThis attaches to a running container from the specified task, then\nruns the provided command.\n\n\n## Logging\n\nTo control logs printed use the flag `--log`, it uses the available logging levels (CRITICAL, WARNING, INFO, DEBUG)\n\n `fuku --log=DEBUG \u003ccommand\u003e`\n\nBy default the logs are set to WARNING.\n\n\n## Running fuku in Sub-processes\n\nThe default behaviour is to assume that one user is on a single app and/or DB instance at all time.\n\nHowever if you need to spawn multiple processes running commands on different app and/or DB instance,\nyou can use the `--app` or `--db` flags.\n\nFor example, we can run in parallel:\n\n  `fuku --app=first_app service wait bg; fuku --app=first_app service run bg \"./manage.py migrate\";`\n\n  `fuku --app=second_app service wait bg; fuku --app=second_app service run bg \"./manage.py migrate\";`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuptick%2Fpython-fuku","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuptick%2Fpython-fuku","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuptick%2Fpython-fuku/lists"}