How to translate dynamic strings in AdminForth API
When you are using AdminForth i18n plugin for external Apps translation you might face a case when you need to translate some data stored in your database which potentially can be changed in future.
When you are using AdminForth i18n plugin for external Apps translation you might face a case when you need to translate some data stored in your database which potentially can be changed in future.
Keycloak is an open-source identity and access management solution that provides authentication and authorization services. It can be used to secure applications and services by managing user identities, roles, and permissions.
In this guide, we will walk you through the process of setting up AdminForth authorization via Keycloak. Most important we will show you how to set up Keycloak in a Docker container and configure it to work with AdminForth.
This guide is a hackers extended addition of Deploying AdminForth to EC2 with Amazon ECR. The key difference in this post that we will not use Amazon ECR but self-host registry on EC2 itself. Automatically from terraform. And will see whether we will win something in terms of build time.
This guide shows how to deploy own Docker apps (with AdminForth as example) to Amazon EC2 instance with Docker and Terraform involving pushing images into Amazon ECR.
Needed resources:
0.008$
per minute.t3a.small
instance (2 vCPUs, 2GB RAM) which costs ~14$
per month in us-east-1
region (cheapest region). Also it will take $2
per month for EBS gp2 storage (20GB) for EC2 instance.$0.09
per GB of data egress traffic (from EC2 to the internet) - this needed to load docker build cache.The setup shape:
Our framework has a CI pipeline that runs npm run build
, publishes the package to NPM (npm publish
), and creates a new release on GitHub. It also sends a notification about the release to a Slack webhook for our team.
Secrets for these services were stored in our CI’s built-in Vault (we are running a self-hosted Woodpecker CI).
Recently, while moving plugins to separate repositories, I decided to try Infisical for centralized secrets management instead of the internal CI Vault. Infisical provides a self-hosted open-source solution, has a well-organized UI, and offers better access control than our CI Vault. It was important to me that I could reuse secrets across different repositories without copying them every time I created a new plugin.
Here’s what I did:
I have a feeling that after first ~600 versions of Adminforth we faced all possible issues with manual versioning and release notes.
Manual versioning and CHANGELOG.md is unreliable as human beings are. It is pretty easy to forget it with relevant information, forget to include some changes, forget to push it to GitHub, push it at wrong time, and many more things.
That is why we decided to move the idea of generating versions, and GitHub releases from git commit messages using great tool called semantic-release.
In this post I will explain why we did a transition from manual releases to automatic, what profits we got from it, and also will show you simple example how to do it in your project!
Every reliable system requires a backup strategy.
If you have no own backup infrastructure, here can suggest a small docker container that will help you to backup your database to AWS Glacier.
Here is more advanced snippet to deploy AdminForth to Terraform.
Here Terraform state will be stored in the cloud, so you can run this deployment from any machine including stateless CI/CD.
We will use GitHub Actions as CI/CD, but you can use any other CI/CD, for example self-hosted free WoodpeckerCI.
Here is a row snippet to deploy AdminForth to Terraform.
Many developers today are using copilots to write code faster and relax their minds from a routine tasks.
But what about writing plain text? For example blogs and micro-blogs: sometimes you want to share your progress but you are lazy for typing. Then you can give a try to AI-assisted blogging. Our Open-Source AdminForth framework has couple of new AI-capable plugins to write text and generate images.