Live Demo: https://go.now-examples.now.sh/
This example shows a pre-setup project including:
- An
api
directory, containing a single endpoint that retrieves the current time with Golang. - A
www
directory, containing static files such asindex.html
andstyle.css
that show a frontend with information from the API.
To get started with this project yourself, you can use Now CLI to initialize it.
From your terminal, use the following command to create a directory called my-go-project
including the files of this example:
now init go my-go-project
Then, cd
into your new project's directory (with cd my-go-project
).
You now have a project, ready to go into development, staging, or production with Now. Your next step is up to you. Try one of the following:
Using Now CLI, as you did to initialize this project, you can use the following command from your terminal to start a development environment locally which replicates the production environment on Now so you can test your new project:
now dev
Using either Now for GitHub or Now for GitLab, you can push this project to a Git repository and it will deploy automatically.
If on anything other than the default branch, with each push your project will be deployed, automatically, to a unique staging URL.
If pushing or merging to the default branch, your project will be deployed and aliased in a production environment, automatically.
Read more about the ZEIT Now Git Integrations:
Using Now CLI, you can also deploy to both staging and production environments from your terminal.
For a staging deployment, you can use the following one-word command:
now
Then, for production, including automatic aliasing, you can use the following:
now --target production
For more information on deploying, see the Deployment Basics documentation.
This example contains a now.json
file which instructs Now how to treat this project when developing locally and deploying.
{
"version": 2,
"name": "my-go-project",
"builds": [
{ "src": "www/**/*", "use": "@now/static" },
{ "src": "api/**/*.go", "use": "@now/go" }
],
"routes": [
{ "src": "/", "dest": "www/index.html" }
]
}
The above instructs Now with:
- The
version
property, specifying the latest Now 2.0 Platform version. - The
name
property, setting the name for the deployment. - The
builds
property, allowing Now to use the @now/go Builder with a specific source target. - The
routes
property, instructing Now to route the user to thewww/index.html
file when requesting the root path.
For more information on configuring Now, see the Configuration documentation.
Learn more about the ZEIT Now platform from our documentation, including:
- More information on deploying Go projects and some technical details.
- More information on the platform itself, including domains and aliasing and local development.