Getting started
Get access and deploy your first project.
picd deploys git repositories you push to it over SSH. Your apps run in an
environment of your own, serve HTTPS on your own subdomains, and you manage
them over the same SSH connection. There's nothing to install beyond git
and ssh.
Get access #
picd uses your pico.sh account. If you don't have one, create it with:
1ssh pico.sh
Your account needs access to picd, which is in a closed beta: sign up on cd.pico.sh, or ask for it in IRC. Once it has access, any key on your pico.sh account signs you in to picd, and your picd username is your pico.sh username.
The examples on this site use the user alice. Check that you're in:
1ssh cd.pico.sh help
Deploy your first project #
A project is a git repository with a compose.yaml. Make one that routes a
hostname you own to a service:
1mkdir hello && cd hello
2cat > compose.yaml <<'EOF'
3services:
4 web:
5 image: traefik/whoami
6 labels:
7 - traefik.enable=true
8 - traefik.http.routers.web.rule=Host(`hello-alice.user.cd.pico.sh`)
9 networks: [picd-ingress]
10networks:
11 picd-ingress:
12 external: true
13EOF
14git init -b main && git add . && git commit -m init
Push it to picd under the project's name:
1git remote add picd ssh://cd.pico.sh/hello.git
2git push picd main
The push's output shows the deploy, and the push fails if the deploy does. Once it's done, your app is live:
1curl https://hello-alice.user.cd.pico.sh
Every later push to main deploys again.
Your environment #
Your apps run on a docker engine of your own, in a virtual machine of your own. Everything you deploy shares it: its CPU, memory, and disk are your plan's.
Next steps #
- Pushing projects: branches, redeploys, and removing projects.
- Compose: what picd adds to your compose files.
- Domains and HTTPS: your subdomains, and custom domains.
- Environment variables: settings and secrets kept out of your repository.
- Shells and logs: get into your environment and your containers.
- Examples: projects to start from.