Getting Started¶
Installation¶
The coasti installer is build as python package. In order to use it, you will need to work in a terminal.
The easiest way to get the coasti installer is via uv.
Get UV¶
%%bash
# linux, macos
curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.10.11 aarch64-apple-darwin
no checksums to verify
installing to /Users/paul/.local/bin
uv
uvx
everything's installed!
%%powershell
# windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
%%bash
uv --help
/Users/paul/para/3_Areas/lf_repos.nosync/coasti_installer/.venv/bin/python: No module named uv
Note: you may need to restart the kernel to use updated packages.
Get the Coasti Installer¶
%%bash
uv tool install coasti
Resolved 32 packages in 1.67s
Prepared 2 packages in 238ms
Installed 32 packages in 29ms
+ annotated-doc==0.0.4
+ annotated-types==0.7.0
+ click==8.3.1
+ coasti==0.2.0
+ colorama==0.4.6
+ copier==9.14.0
+ dunamai==1.26.0
+ funcy==2.0
+ jinja2==3.1.6
+ jinja2-ansible-filters==1.3.2
+ markdown-it-py==4.0.0
+ markupsafe==3.0.3
+ mdurl==0.1.2
+ packaging==26.0
+ pathspec==1.0.4
+ platformdirs==4.9.4
+ plumbum==1.10.0
+ prompt-toolkit==3.0.52
+ pydantic==2.12.5
+ pydantic-core==2.41.5
+ pygments==2.19.2
+ python-dotenv==1.2.2
+ pyyaml==6.0.3
+ questionary==2.1.1
+ rich==14.3.3
+ ruamel-yaml==0.19.1
+ shellingham==1.5.4
+ typer==0.24.1
+ typing-extensions==4.15.0
+ typing-inspection==0.4.2
+ wcwidth==0.6.0
+ xkcdpass==1.30.0
Installed 1 executable: coasti
%%bash
coasti --help
Usage: coasti [OPTIONS] COMMAND [ARGS]...
Coasti Installer - Initialize projects and install products.
â•─ Options ────────────────────────────────────────────────────────────────────╮
│ --verbose -v INTEGER Increase verbosity (-v, -vv, -vvv) │
│ [default: 0] │
│ --quiet -q Avoid user prompts │
│ --install-completion Install completion for the current │
│ shell. │
│ --show-completion Show completion for the current │
│ shell, to copy it or customize the │
│ installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
â•─ Commands ───────────────────────────────────────────────────────────────────╮
│ version Shows the version of the coasti installer. │
│ init Initialize a coasti workspace │
│ product List, add or update products. │
╰──────────────────────────────────────────────────────────────────────────────╯
Creating a new project¶
One central idea of coasti is that projects follow a specific folder structure. This helps all installed tools and components to find what they need.
The installer can create this structure for us. If you are setting the project up on a server, we suggest placing it in /coasti, but here I am just using my home folder.
%%bash
coasti init /Users/paul/coasti_project
Copying from template version 0.2.0
create tools
create tools/.gitkeep
create products
create products/.gitkeep
create .gitignore
create config
create config/secrets
create config/secrets/sample_pass
create config/secrets/vcs_auth_coasti
create config/products.yml
create config/install_answers.yml
create config/tools.yml
create logs
create logs/.gitkeep
create data
create data/.gitkeep
> Running task 1 of 4: git init
Initialized empty Git repository in /Users/paul/coasti_project/.git/
> Running task 2 of 4: git add .
> Running task 3 of 4: git commit -m "Coasti init"
[main (root-commit) f6d5483] Coasti init
6 files changed, 57 insertions(+)
create mode 100644 .gitignore
create mode 100644 config/install_answers.yml
create mode 100644 config/products.yml
create mode 100644 config/tools.yml
create mode 100644 products/.gitkeep
create mode 100644 tools/.gitkeep
Coasti folder structure created at "/Users/paul/coasti_project"
Next steps:
- Change directory to the project root:
cd /Users/paul/coasti_project
- See "README.md" and start coding.
- To add products, see:
coasti product --help
- Push the local repo to your remote origin:
git push --set-upstream origin main
Let’s have a look at the created folder structure.
%%bash
tree /Users/paul/coasti_project
/Users/paul/coasti_project
├── config
│  ├── install_answers.yml
│  ├── products.yml
│  ├── secrets
│  │  ├── sample_pass
│  │  └── vcs_auth_coasti
│  └── tools.yml
├── data
├── logs
├── products
└── tools
6 directories, 5 files