Code Monkey home page Code Monkey logo

envault's Introduction

Envault banner

Envault

Tests passing Laravel v8.x Livewire v2.x PHP 8

Envault is a tool to share .env secrets.

It lets you manage and sync your entire team’s local .env files, across all your projects, so you’re all kept up to date with the latest changes.

Simply install Envault onto your own web server and you're ready to sync all your projects. πŸš€

Interested? Click here to watch a demo of the app.

Requirements

Setup

Envault is built on the Laravel PHP framework. This makes installation very simple.

  1. Clone this repository onto your server and run composer update.
  2. Copy the .env.example to .env.
  3. Generate a new APP_KEY in your .env by running php artisan key:generate in the terminal.
  4. Ensure that the APP_URL in .env matches the address of your Envault server.
  5. Create a new database. For more details on the databases supported, please refer to the Laravel documentation. Fill out any appropriate connection details in your .env file.
  6. Run php artisan migrate to prepare your database.
  7. Configure outgoing mail from your Envault server. For more details on the mail drivers supported, please refer to the Laravel documentation. Fill out any appropriate connection details in your .env file.
  8. Set up a scheduled task to run php artisan schedule:run every minute. For more details, please refer to the Laravel documentation.
  9. Visit your Envault server URL and setup your owner account.

We also have installation guides for specific platforms like Laravel Forge and Laravel Vapor.

Update Guide

After you update Envault from this repository, please run the following commands on your server. If you're using a platform like Laravel Forge, these can be added to your deploy script:

composer install
php artisan migrate
php artisan view:cache
php artisan queue:restart

Documentation

The Basics

Diving Deeper

Users and Permissions

Roadmap

Need Help?

🐞 If you spot a bug with Envault, please submit a detailed issue, and wait for assistance.

πŸ€” If you have a question or feature request, please start a new discussion.

πŸ” If you discover a vulnerability within Envault, please review our security policy.

envault's People

Contributors

adrum avatar bilogic avatar danharrin avatar dependabot[bot] avatar dsone avatar kberzinch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

envault's Issues

Unclear docs, missing env variables and more...

I would expect better documentation from a paid-for resource, setting up is a nightmare with limited documentation and missing code/env variables...

Our first road bump

No such file or directory in /.../.../envault/artisan on line 18

we had to deduct from this comment and the composer install under the Update Guide, that we need composer installed, you should really mention that in your docs/setup guide.

On to the next problem...

The charset encoding is hardcoded? either you should include that in your docs or add a variable for that as well:

 'pgsql' => [
            'driver' => 'pgsql',
            'url' => null,
            /* to remove error Invalid parameter value: 7 ERROR:  invalid value for parameter "client_encoding": "utf8mb4"  */
            /* 'url' => env('DATABASE_URL'), */
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],

And another problem...

Seems like the .env variables are missing enabling us to send mails?

    'mailgun' => [
        'domain' => env('MAILGUN_DOMAIN'),
        'secret' => env('MAILGUN_SECRET'),
        'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
    ],

ps: lol at wanting to charge me 10$/pm for setup and hosting....

Error: Looks like your setup token is invalid, please get another!

I get this error when my the envault application is running in a sub-domain and I am trying to do npx envault domain.com 1 token

What is the issue ? And is this is something an issue on my side or token generation a known issue ? I've tried a few times I keep getting the same error

Surrounding double quotes are removed from variable value on import

Describe the bug

Removes double quotes "" from a variable value on import.

To reproduce
Steps to reproduce the behavior:

  1. Create an app.
  2. Click Import.
  3. Type in FOO="BAR#"
  4. Variable imported is FOO=BAR#

Expected behavior
Imported variable is FOO="BAR#"

Screenshots
N/A

Context

  • Browser: Chrome
  • Server OS: Debian
  • PHP version: 7.4

Additional details
This can be problematic when you try to import a variable that has characters that need escaping (such as bearer token) causing entire .env to break. Double quotes are put back if you update the variable manually. No issue when you do "Add a variable". Does work fine with single quotes ' ' .

In portal to sign in view error 500

Describe the bug
access envault.dev click in "sign in" view error 500

To reproduce
Steps to reproduce the behavior:

  1. Go to 'envault.dev'
  2. Click on 'sign in'
  3. See error 500

Expected behavior
view user portal

Context

  • Browser: Chrome

Unresponsive UI

Describe the bug

User interface is unresponsive and requires you to click multiple times. Mostly 2, sometimes even 3.

To reproduce
Steps to reproduce the behavior:
Edit a variable (see video link below for demo)

Expected behavior
You have to click it once

Screenshots
Video demo: https://share.getcloudapp.com/xQuD59rO

Context

  • Browser: Chrome Version 83.0.4103.116 (Official Build) (64-bit)
  • Server OS: Debian 9.12 stretch
  • Client OS: Mac OS Catalina
  • PHP version: PHP 7.4.6

Additional details

Obviously it seems that is loses focus and if I click the bottom area before clicking the button it works on first attempt. Please note that this is not just this area and across the entire app (another example would be when you try to input a login token, I usually have to click twice)

Please understand that it is extremely frustrating as it can cause item not to be saved by mistake leaving a bug in the code which has already happened.

Later on in the video you can see me clicking through the menus and console log showing undefined errors.

Missing the pencil icon

Describe the bug
Missing the pencil icon

To reproduce
Steps to reproduce the behavior:

  1. Go to users
  2. Click on any user
  3. See the edit button

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Context

  • Browser: FireFox
  • Server OS: MacOS (valet)
  • PHP version: 7.4

Additional details
Add any other details about the problem here.

All requests are done using HTTPS

Hey all,

I just installed this locally to give it a go, I've used Docker, and was awesome.

I was able to add users, apps, and variables. but I could not update my local projects.

npx envault dev-envault.local 1 A0SFe6y3yJtV3oKH

Error: Looks like your setup token is invalid, please get another!.

This is due to the Axios is forcing HTTPS?! There is a way to overcome this?!

Could the command grab the entire APP_URL defined on .env
npx envault http://dev-envault.local 1 A0SFe6y3yJtV3oKH

I could create a PR to this is a good approach

Best regards,

Variables Fail To Import

When importing variables that have spaces (APP_ENV = local), the variables fail to import without any error notification.

Slacknotification using singular instead of plural

Describe the bug
Slacknotifications wording is wrong:
"44 environment variables was added!"

To reproduce

  1. Add a new project.
  2. Add Slacknotification webhook and save.
  3. Import multipe ENV variables in that project.
  4. See Slacknotification using "was" instead of "were".

Expected behavior
"44 environment variables were added!" as wording in Slack.

Context
Current Envault version 1.8.2

NPX Envault Setup Error through Valet

When I have Envault setup through secure local Valet and create a new app and I tried to install the command on my Laravel app where I intend to use Envault through

npx envault envault.test 1 secret_token

I get this error

Welcome to Envault!
No more .env update nightmares from now on, we promise πŸ€—

Preparing a few things...

Uh oh! Looks like your setup token is invalid, please get another!
Error: unable to verify the first certificate

What am I doing wrong ?

OS: macOS Big Sur
PHP: 7.4.13

Incorrect Field Definition in Failed Job Table

Describe the bug
A clear and concise description of what the bug is.

The CreateFailedJobsTable migration defines id field when a uuid field is required.

To reproduce
Steps to reproduce the behaviour:

  1. Get the latest version of the repo
  2. Set invalid email stmp settings (so a job will fail)
  3. Run php artisan migrate
  4. Try and login
  5. Review logs

Expected behaviour
A clear and concise description of what you expected to happen.
The migration should have the field name and type.

Context

  • PHP version: [e.g. 7.4] 7.4.15
  • Laravel Version: 8.12

Additional details
Add any other details about the problem here.

No change detected, I have many change

Hi,

i am having an issue where it is telling me that i ma up to date but I have many change that would need to be updated

....\nessaApp>npx envault --force
Welcome to Envault! No more .env update nightmares from now on, we promise οΏ½
Connecting to your Envault server... done
You are already up to date οΏ½

As you can see on the printscreen it should update the 6 others variable i have setup
image

To be able to refresh, i have to delete the .env then run the cmd npx envault and it will work,.. Not a big deal to delete the env each time but think I should let you know.

Thanks again,

sorry for the poor english

"npx envault" command incorrectly reports changes

Describe the bug

Since v1.3.3 update there is a small bug which doesn't seem to cause an issue but it is reporting incorrectly when running npx envault. Repeatedly running the command it thinks variable has changed when it doesn't.

To reproduce
Steps to reproduce the behavior:

  1. Create an empty app (optional)
  2. Add a .env variable SECRET_THING="Bearer 12345"
  3. Import that variable using import.
  4. Sync the app using full npx envault ...
  5. Keep running npx envault

Expected behavior
Should report that nothing needs to change.

Screenshots
Screenshot below shows me running the command without changing data in envault app.
Image 2020-05-22 at 6 36 40 am

Context

  • v1.3.3
  • Browser: n/a
  • Server OS: debian
  • PHP version: 7.4

Additional details
I didn't notice the issue prior v1.3.3. Didn't test without quotes.

Can't install

I am attempting to install the product on ubuntu 18.04.

Here is the output of some commands to show that dependencies are installed

environment-man@envault-private-service:~/envault$ php artisan key:generate
PHP Warning:  require(/home/environment-man/envault/vendor/autoload.php): failed to open stream: No such file or directory in /home/environment-man/envault/artisan on line 18
PHP Fatal error:  require(): Failed opening required '/home/environment-man/envault/vendor/autoload.php' (include_path='.:/usr/share/php') in /home/environment-man/envault/artisan on line 18
environment-man@envault-private-service:~/envault$ ls
LICENSE.md  app      bootstrap      composer.lock  database           package.json  public     routes      storage  webpack.mix.js
README.md   artisan  composer.json  config         package-lock.json  phpunit.xml   resources  server.php  tests
environment-man@envault-private-service:~/envault$ php --version
PHP 7.2.24-0ubuntu0.18.04.4 (cli) (built: Apr  8 2020 15:45:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.4, Copyright (c) 1999-2018, by Zend Technologies
environment-man@envault-private-service:~/envault$ composer --version
Composer version 1.10.6 2020-05-06 10:28:10
environment-man@envault-private-service:~/envault$ laravel --version
Laravel Installer 3.0.1
environment-man@envault-private-service:~/envault$ ls
LICENSE.md  app      bootstrap      composer.lock  database           package.json  public     routes      storage  webpack.mix.js
README.md   artisan  composer.json  config         package-lock.json  phpunit.xml   resources  server.php  tests
environment-man@envault-private-service:~/envault$ cat .env
APP_NAME=Envault
APP_KEY=
APP_URL=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
environment-man@envault-private-service:~/envault$ php artisan key:generate
PHP Warning:  require(/home/environment-man/envault/vendor/autoload.php): failed to open stream: No such file or directory in /home/environment-man/envault/artisan on line 18
PHP Fatal error:  require(): Failed opening required '/home/environment-man/envault/vendor/autoload.php' (include_path='.:/usr/share/php') in /home/environment-man/envault/artisan on line 18

Missing assets with laravel vapor

Describe the bug
upon receiving a notification

To reproduce
Steps to reproduce the behavior:

  1. receive email

Expected behavior
hope to see the logo of the application

Screenshots
alt text

Context

  • Browser: Chrome
  • PHP version: 7.4

Additional details
I also see the code in other email or notification templates

Unable to login

Describe the bug
I just created an owner user and i tried to login but i get 419 error response.

To reproduce
Steps to reproduce the behavior:

  1. Go to login
  2. Click on continue
  3. See error

Screenshots

Screenshot 2021-03-11 at 20 43 27

Context

  • Browser: Chrome
  • Server OS: macOS Big Sur Version 11.2.2
  • PHP version: 7.4.16

Trusted proxies prevents running envault behind cloudflare

Describe the bug
Running envault with cloudflare proxy enabled results in an infinite 308 redirect.
I think that's based on the trusted proxies middleware.
Because I have to do updates via git pull editing files would results in stashing/merging everytime.

Do you think that there's any way to define allowed proxies via ENVs or similar non-project files? Or possibly install a package for cloudflare like https://github.com/monicahq/laravel-cloudflare that could be enabled/disabled via ENV. πŸ€”

To reproduce
Steps to reproduce the behavior:

  • Install envault on a sever
  • Use cloudflare as DNS
  • Enable cloudflare proxy

Expected behavior
Possible to use cloudflare proxy and therefore cloudflare security features for a envault installation.

No .env found with env

Describe the bug
When pasting the initialization command into the terminal of my project that has a env file currently. I get an error that says it does not exist.
Welcome to Envault! No more .env update nightmares from now on, we promise πŸ€— Connecting to your Envault server... done A .env file was not found. Would you like to create a new one? Y/n:
When putting y in the prompt it follows with:
TypeError: Cannot read property 'writeFile' of undefined

To reproduce
Steps to reproduce the behavior:

  1. Open preexisting project with env file
  2. Copy in supplied command from interface
  3. Run command

Expected behavior
Should setup the environment for Envault.

Context

  • Browser: Chrome
  • PHP version: 7.4

Additional details
Seems like a js bug but no place to put issues for the cli.

no found livewire.js

Describe the bug
does not complete registration in setup step

To reproduce
Steps to reproduce the behavior:

  1. Install Clean

Expected behavior
visually it didn't show me an error, but when checking the console it couldn't find the livewire.js file

Screenshots
image

Additional details
run php artisan livewire:publish and solved, pls add in readme

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.