A Fast, Secure and Reliable Terraform Backend, Set up in Minutes.
Lynx is a Fast, Secure and Reliable Terraform Backend. It is built in Elixir with Phoenix framework.
- Simplified Setup: Easy installation and maintenance for hassle-free usage.
- Team Collaboration: Manage multiple teams and users seamlessly.
- User-Friendly Interface: Enjoy a visually appealing dashboard for intuitive navigation.
- Project Flexibility: Support for multiple projects within each team.
- Environment Management: Create and manage multiple environments per project.
- State Versioning: Keep track of Terraform state versions for better control.
- Rollback Capability: Easily revert to previous states for efficient infrastructure management.
- Terraform Locking Support: The project also supports Terraform locking, ensuring state integrity and preventing concurrent operations that could lead to data corruption
- Automated Scheduled Backups: Enable automated scheduled backups for both project and environment state files to ensure data integrity and offer a recovery option at specific points in time.
- Snapshot Creation: for both projects and environments to ensure data integrity and provide recovery options at specific points in time.
To run with docker and docker-compose
$ git clone https://github.com/Clivern/Lynx.git app
$ cd app
$ docker-compose up -d- Install Elixir: You can install Elixir on Ubuntu using the following commands:
$ sudo apt-get update
$ sudo apt-get install elixir- Install PostgreSQL: Install PostgreSQL on Ubuntu with:
$ sudo apt-get install postgresql postgresql-contrib- Configure Environment Variables: Set up the required environment variables from
.env.example.
$ mkdir -p /etc/lynx
$ cd /etc/lynx
$ git clone https://github.com/Clivern/Lynx.git app
$ cp app/.env.example .env.local # Adjust the database configs- Migrate the database
$ cd /etc/lynx/app
$ make migrate- Create a Systemd Service File.
[Unit]
Description=Lynx
[Service]
Type=simple
EnvironmentFile=/etc/lynx/app/.env.local
ExecStart=/usr/bin/mix phx.server
[Install]
WantedBy=multi-user.targetsudo systemctl enable lynx.service
sudo systemctl start lynx.serviceTo run postgresql with docker or podman
$ docker run -itd \
-e POSTGRES_USER=lynx \
-e POSTGRES_PASSWORD=lynx \
-e POSTGRES_DB=lynx_dev \
-p 5432:5432 \
--name lyx \
postgres:15.2
$ podman run -itd \
-e POSTGRES_USER=lynx \
-e POSTGRES_PASSWORD=lynx \
-e POSTGRES_DB=lynx_dev \
-p 5432:5432 \
--name lyx \
postgres:15.2
# https://github.com/dbcli/pgcli
$ psql -h 127.0.0.1 -U lynx -d lynx_dev -WThen run lynx with the following commands
$ cp .env.example .env.local
$ export $(cat .env.local | xargs)$ make deps
$ make migrate
$ make run
$ make test
For transparency into our release cycle and in striving to maintain backward compatibility, Lynx is maintained under the Semantic Versioning guidelines and release process is predictable and business-friendly.
See the Releases section of our GitHub project for changelogs for each release version of Lynx. It contains summaries of the most noteworthy changes made in each release. Also see the Milestones section for the future roadmap.
If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/clivern/lynx/issues
If you discover a security vulnerability within Lynx, please send an email to [email protected]
We are an open source, community-driven project so please feel free to join us. see the contributing guidelines for more details.
© 2022, Clivern. Released under MIT License.
Lynx is authored and maintained by @clivern.