A complete Golang and Nuxt boilerplate for your project with backend API, frontend, tests and CI/CD pipelines.
Features- Backend written in Golang using Beego framework.
- Frontend written in NodeJS using NUXT and Vue.js frameworks.
- Material design using Vuetify.
- JSON REST API based on jsonapi.org standard.
- Fully featured user registration, login, password reminder, profile update, 2FA authentication, SMS based mobile confirmation, … etc.
- JSON Web Tokens (JWT) based authentication.
- Social login using Facebook, LinkedIn, Google, Github.
- SEO friendly thanks to the NUXT Static Generated (Pre Rendering).
- SQL migration using sql-migrate.
- Rate limiter for API routes to easily set a rate limit per IP for one or more routes.
- Role-based access control (RBAC) for API routes and permissions.
- Pagination implementation for API and frontend with caching.
- Multi-factor authentication using One Time Passwords and mobile SMS code.
- Nice Email templates using Hermes.
- Fully featured admin dashboard based on Vuetify Material Dashboard.
- Complete CI/CD pipelines including tests using GitLab .gitlab-ci.yml file.
- Deploy to Heroku using few easy steps.
- Automated development initialization using Docker compose and init file.
- Application Cache using Cachita with support for memory, Redis, database and file cache.
- Dependency injection.
- Backend API integration and unit tests.
- Frontend Jest tests.
Provisions infrastructure for a Golang application on Hetzner cloud. The code packs a Golang, PostgreSQL, S3(minio) images using packer then launches the infrastructure using Terraform with helpers such as bash, hcloud and supfile. The main reason behind the setup is the make it as cost effective as possible to launch a small to medium project.
Usage:
./cloudflare-dns.sh example.com sub-domain [email protected] cloudflare_token
Backup/Restore script to auto initiate or backup a database.