Everlock is a secure message encryption platform that ensures a secret can only be revealed when all designated participants enter their unique key fragments. Using distributed encryption, Everlock enables users to create and store encrypted "last wishes" or confidential messages, which can only be unlocked through collective decryption.
- Multi-key encryption for ultimate security
- Decentralized access control—no single person can decrypt the message alone
- Simple and intuitive interface powered by Mustache
- Built with Go for performance and reliability
- Ideal for safeguarding final messages, secret agreements, or time-sensitive information
To check the code for style and standard compliance, you can use the linter via the golangci-lint tool.
Install golangci-lint if it's not already installed:
brew install golangci-lintTo run the linter, execute the following command in the root of the project:
golangci-lint runThe linter will check all Go files in the project for errors and style warnings.
To apply migrations to the database, use the golang-migrate tool.
Ensure you have golang-migrate installed. To install it, run the following command:
brew install golang-migrateApply the migrations with this command:
migrate -path internal/db/migrations -database "postgres://everlock:12345@localhost:5432/everlock?sslmode=disable" upWhere:
- path internal/db/migrations is the path to the migrations folder.
- database "postgres://everlock:12345@localhost:5432/everlock?sslmode=disable" is the connection string for your database.
To roll back migrations, use this command:
migrate -path internal/db/migrations -database "postgres://everlock:12345@localhost:5432/everlock?sslmode=disable" downTo check the current status of migrations, run:
migrate -path internal/db/migrations -database "postgres://everlock:12345@localhost:5432/everlock?sslmode=disable" status