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.
AWS Service to simplify AWS SDK functions
Handy command line app written in Golang to bulk check validity of URLs in CSV files and if they have certain keywords. Get it on Github.
Ansible role for deploying and running a Golang binary as a systemd service
- Copy the files into your playbook and set the service_name and base_path to your application.
- The service uses rsyslog to create error.log and access.log.
- Logrotate config included.
- Handles Beego framework logging.
This is an alternative to native SendMail() function that requires authentication in Golang. The function is part of Go Helpers library available on github.