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 #

<< PREV
Sitemap
NEXT >>
Commands