Go
Faça deploy de serviços Go com workers via Procfile, bancos de dados auto-detectados e cron.
Passo a passo: Fazer deploy de Go no DigitalOcean · Fazer deploy de Go no Hetzner · Fazer deploy de Go no Vultr · Fazer deploy de Go no OVHcloud · Fazer deploy de Go no Scaleway · Fazer deploy de Go no UpCloud
- Detectado pelo
go.mod; buildado com Railpack ou seu Dockerfile. Um módulo em uma subpasta (server/go.modao lado de umfrontend/) é encontrado e buildado a partir dali automaticamente. - O binário precisa escutar na
$PORT(e em todas as interfaces). - Um import de driver conhecido (
github.com/jackc/pgx,github.com/lib/pq,github.com/go-sql-driver/mysql,github.com/redis/go-redis…) já tem seu banco de dados provisionado eDATABASE_URL/REDIS_URLinjetados automaticamente; caso contrário, adicione um você mesmo pelo app ou canvas.
Workers: declare o processo, o Railyard escala
O Go não tem uma convenção de framework para trabalho em segundo plano, então não há nada para auto-detectar — declare um segundo processo em um Procfile na raiz do módulo e ele roda e escala de forma independente do web.
web: ./server
worker: ./server -mode=worker
Os dois rodam o mesmo binário buildado; seu main() lê uma flag ou variável de ambiente para decidir qual loop executar — um único código-fonte e um único build, vários tipos de processo, o modelo 12-factor. Adicione ou edite processos na aba Workers do app sem tocar no repositório, e escale qualquer um deles pela CLI:
railyard scale my-app worker=2
Para trabalho agendado, use o Cron em vez de um loop dormindo no worker — ele roda seu binário com uma flag diferente em um horário definido e mantém um histórico das execuções.
Configuração e secrets
Tudo que o seu binário lê com os.Getenv é uma variável de ambiente comum: defina em Variables, ou railyard env:set my-app KEY=VALUE pela CLI, e o mesmo binário buildado roda sem alterações de staging até produção — paridade dev/prod, não uma recompilação por ambiente. Aponte para um banco de dados ou Redis rodando como serviço próprio no canvas com ${{redis.RAILYARD_PRIVATE_URL}} — resolvido por ambiente. Veja Variáveis e secrets.
Fazendo o deploy
- A partir de um repositório: cole a URL do Git, ou escolha no seletor depois que o GitHub estiver conectado — o Railyard builda com Railpack (ou seu próprio Dockerfile) e faz deploy a cada push.
- Pela CLI:
railyard create my-app https://github.com/me/my-app --port 8080, ourailyard deploy my-app --localpara buildar com seu próprio Docker e enviar uma única imagem em vez de usar o builder da equipe. - Um clique só: adicione o botão de deploy ao seu README, ou publique no catálogo de templates para qualquer pessoa lançar com os addons e variáveis já preenchidos.