-
Notifications
You must be signed in to change notification settings - Fork 988
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 8d00c5c
Showing
29 changed files
with
861 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
node_modules | ||
.env | ||
.env.infisical | ||
.DS_STORE | ||
|
||
*~ | ||
*.swn | ||
*.swp | ||
*.swo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
<p align="center"> | ||
<img width="300" src="/img/logoname-black.svg#gh-light-mode-only"> | ||
<img width="300" src="/img/logoname-white.svg#gh-dark-mode-only"> | ||
</p> | ||
|
||
--- | ||
|
||
# Infisical | ||
|
||
[Infisical](https://infisical.com/) is a simple, end-to-end encrypted (E2EE) platform that enables dev teams to sync and manage their environment variables. | ||
|
||
Infisical enables dev teams to pull and inject environment variables directly from the platform into their local processes just by modifying their start/dev scripts. | ||
|
||
It also supports git-like pull/push commands to sync and share .env files manually via CLI if needed. | ||
|
||
![alt text](/img/infisical_github_repo.png) | ||
|
||
## Usage | ||
|
||
For a quick tutorial, check out our getting started video [here](https://www.youtube.com/watch?v=fgNTyZdHiQQ). | ||
|
||
Head over to [Infisical](https://infisical.com/) to make an account and create a project for your app. Once you've made an account, populate the project with your environment variables and invite your team. | ||
|
||
Once you’ve done that, return here to pull and inject secrets from the project to your local process/project. | ||
|
||
### Step 1: Modify your dev script | ||
|
||
Infisical works with leading JS tools and frameworks to pull and inject secrets into your local environment during development. This includes Express, Fastify, Koa (+/- nodemon) as well as Create-React-App, Next.js, NestJS, and Gatsby. | ||
|
||
Navigate to your root project folder; feel free to delete your local .env file as it won’t be needed anymore. Now, prepend the Infisical command before whatever dev command you're using in your package.json dev script. This should take the following form where the environment argument is the environment (options are dev, staging, and prod) that you wish to pull from: | ||
|
||
```jsx | ||
"scripts": { | ||
... | ||
"dev": "npx infisical [environment] [start/dev command]" | ||
} | ||
``` | ||
|
||
Examples: | ||
|
||
**Express, Fastify, Koa (+ nodemon)** | ||
|
||
```jsx | ||
"scripts": { | ||
... | ||
"dev": "npx infisical dev nodemon index.js" | ||
} | ||
``` | ||
|
||
**Next.js** | ||
|
||
```jsx | ||
"scripts": { | ||
... | ||
"dev": "npx infisical dev next dev" | ||
} | ||
``` | ||
|
||
**NestJS** | ||
|
||
```jsx | ||
"scripts": { | ||
... | ||
"start:dev": "npx infisical dev nest start --watch" | ||
} | ||
``` | ||
|
||
**Gatsby** | ||
|
||
```jsx | ||
"scripts": { | ||
... | ||
"dev": "npx infisical dev gatsby develop" | ||
} | ||
``` | ||
|
||
### Step 2: Run your dev process | ||
|
||
Next, start your dev process. If it’s your first time, then follow the prompt to log in and connect to the project: | ||
|
||
``` | ||
npm run dev | ||
``` | ||
|
||
Voila, you’re now automatically pulling and injecting secrets into your local environment every time you run your dev script! | ||
|
||
Feel free to check out the full usage documentation and list of commands [here](https://infisical.com/docs/gettingStarted). | ||
|
||
## How it Works | ||
|
||
Infisical uses end-to-end encryption to securely store and share secrets. It uses secure remote password (SRP) to handle authentication and public-key cryptography for secret sharing and syncing; your secrets are symmetrically encrypted at rest by keys decryptable-only by intended parties in your team. Put simply, we've put measures in place so that secrets remain your-eyes-only - all while making minimal user-experience trade-offs. | ||
|
||
For a fuller discussion on how it works, head to: [Infisical](https://infisical.com) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
--- | ||
title: "Infisical CLI" | ||
description: "Learn about each supported command and its flags" | ||
--- | ||
|
||
## Background | ||
|
||
Infisical ships with multiple commands to assist with ongoing project needs; we list these commands and give context for them below. | ||
|
||
<Card title="Install the CLI" icon="lightbulb" href="/installCLI"> | ||
If you haven't already, install the Infisical CLI | ||
</Card> | ||
|
||
Note on arguments: | ||
|
||
- [environment]: the intended environment for the given command being one of dev, staging, or prod. | ||
- [projectId]: the project identifier found on the dashboard. | ||
|
||
## Commands | ||
|
||
- `login` used to set the logged in user. Your credentials are saved securely in your system key ring. Note: only one user can be logged in at a time. To change the logged in user, run the command again and overwrite the previous login. | ||
- `init` used to link your infisical.com project to your local project. Run this command ideally at the root of your local project. You will have to run this command for each new project you create locally. | ||
- `run` used to inject your secrets as environment variables into your application process. Example `infisical run --stage=prod -- npm run start` | ||
- `---projectId` flag is used to link your local project to a Infisical.com project. Use this option only when you are injecting via Infisical Token instead of your login. | ||
- `---stage` flag is used to set the environment from which your secrets are pulled from. By default, secrets from your project are pulled from the `dev`. To change to for example prod, add `--stage=prod` | ||
|
||
### Global flags | ||
These are flags you can add to any command | ||
|
||
- `--domain` you may change this if you are self hosting Infisical. By default, the CLI points to Infisical.com backend. To point to your own backend, make sure to set this flag for each command you run. Example `infisical login --domain=https://mybackend.com` | ||
- `--debug` use this flag when you want to see more logs related to the error you are receiving. By default debug logs are hidden. Example `infisical run --debug <your command>` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
title: "Heroku" | ||
description: "With this integration, you can automatically sync your secrets to Heroku as soon as you update secrets in Infisical." | ||
--- | ||
|
||
## Instructions | ||
|
||
### Step 1: Open the integrations csonsole | ||
|
||
Open the Infisical Dashboard. Choose the project in which you want to set up the intergation. Go to the integrations tab in the left sidebar. | ||
|
||
### Step 2: Authenticate with Heroku | ||
|
||
Click on Heroku in the list of available integrations. Log in if asked by Heroku and provide the necessary permissions to Infisical. You will afterwards be redirected back to the integrations page. | ||
|
||
Note: during an integration with Heroku, for security reasons, it is impossible to maintain end-to-end encryption. In theory, this lets Infisical decrypt yor environment variables. In practice, we can assure you that this will never be done, and it allows us to protect your secrets from bad actors online. The core Infisical service will always stay end-to-end encrypted. With any questions, reach out [email protected]. | ||
|
||
### Step 3: Start integration | ||
|
||
Once the integration is set up, choose a Heroku App that you want to sync the secrets to, and the Infisical project environment that you would to sync the secrets from. Click on the "Start Integration" button. | ||
|
||
### Step 4: You're good to go! | ||
|
||
The integration should now show status 'In Sync'. Every time you edit the secrets, they will be automatically pushed to Heroku. If you want to update anything in your integration, you will have to delete the current one and create a new one. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
--- | ||
title: "Code of Conduct" | ||
description: "" | ||
--- | ||
|
||
## Our Pledge | ||
|
||
We as members, contributors, and leaders pledge to make participation in our | ||
community a harassment-free experience for everyone, regardless of age, body | ||
size, visible or invisible disability, ethnicity, sex characteristics, gender | ||
identity and expression, level of experience, education, socio-economic status, | ||
nationality, personal appearance, race, caste, color, religion, or sexual | ||
identity and orientation. | ||
|
||
We pledge to act and interact in ways that contribute to an open, welcoming, | ||
diverse, inclusive, and healthy community. | ||
|
||
## Our Standards | ||
|
||
Examples of behavior that contributes to a positive environment for our | ||
community include: | ||
|
||
- Demonstrating empathy and kindness toward other people | ||
- Being respectful of differing opinions, viewpoints, and experiences | ||
- Giving and gracefully accepting constructive feedback | ||
- Accepting responsibility and apologizing to those affected by our mistakes, | ||
and learning from the experience | ||
- Focusing on what is best not just for us as individuals, but for the overall | ||
community | ||
|
||
Examples of unacceptable behavior include: | ||
|
||
- The use of sexualized language or imagery, and sexual attention or advances of | ||
any kind | ||
- Trolling, insulting or derogatory comments, and personal or political attacks | ||
- Public or private harassment | ||
- Publishing others' private information, such as a physical or email address, | ||
without their explicit permission | ||
- Other conduct which could reasonably be considered inappropriate in a | ||
professional setting | ||
|
||
## Enforcement Responsibilities | ||
|
||
Community leaders are responsible for clarifying and enforcing our standards of | ||
acceptable behavior and will take appropriate and fair corrective action in | ||
response to any behavior that they deem inappropriate, threatening, offensive, | ||
or harmful. | ||
|
||
Community leaders have the right and responsibility to remove, edit, or reject | ||
comments, commits, code, wiki edits, issues, and other contributions that are | ||
not aligned to this Code of Conduct, and will communicate reasons for moderation | ||
decisions when appropriate. | ||
|
||
## Scope | ||
|
||
This Code of Conduct applies within all community spaces, and also applies when | ||
an individual is officially representing the community in public spaces. | ||
Examples of representing our community include using an official e-mail address, | ||
posting via an official social media account, or acting as an appointed | ||
representative at an online or offline event. | ||
|
||
## Enforcement | ||
|
||
Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||
reported to the community leaders responsible for enforcement at | ||
[INSERT CONTACT METHOD]. | ||
All complaints will be reviewed and investigated promptly and fairly. | ||
|
||
All community leaders are obligated to respect the privacy and security of the | ||
reporter of any incident. | ||
|
||
## Enforcement Guidelines | ||
|
||
Community leaders will follow these Community Impact Guidelines in determining | ||
the consequences for any action they deem in violation of this Code of Conduct: | ||
|
||
### 1. Correction | ||
|
||
**Community Impact**: Use of inappropriate language or other behavior deemed | ||
unprofessional or unwelcome in the community. | ||
|
||
**Consequence**: A private, written warning from community leaders, providing | ||
clarity around the nature of the violation and an explanation of why the | ||
behavior was inappropriate. A public apology may be requested. | ||
|
||
### 2. Warning | ||
|
||
**Community Impact**: A violation through a single incident or series of | ||
actions. | ||
|
||
**Consequence**: A warning with consequences for continued behavior. No | ||
interaction with the people involved, including unsolicited interaction with | ||
those enforcing the Code of Conduct, for a specified period of time. This | ||
includes avoiding interactions in community spaces as well as external channels | ||
like social media. Violating these terms may lead to a temporary or permanent | ||
ban. | ||
|
||
### 3. Temporary Ban | ||
|
||
**Community Impact**: A serious violation of community standards, including | ||
sustained inappropriate behavior. | ||
|
||
**Consequence**: A temporary ban from any sort of interaction or public | ||
communication with the community for a specified period of time. No public or | ||
private interaction with the people involved, including unsolicited interaction | ||
with those enforcing the Code of Conduct, is allowed during this period. | ||
Violating these terms may lead to a permanent ban. | ||
|
||
### 4. Permanent Ban | ||
|
||
**Community Impact**: Demonstrating a pattern of violation of community | ||
standards, including sustained inappropriate behavior, harassment of an | ||
individual, or aggression toward or disparagement of classes of individuals. | ||
|
||
**Consequence**: A permanent ban from any sort of public interaction within the | ||
community. | ||
|
||
## Attribution | ||
|
||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], | ||
version 2.1, available at | ||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. | ||
|
||
Community Impact Guidelines were inspired by | ||
[Mozilla's code of conduct enforcement ladder][mozilla coc]. | ||
|
||
For answers to common questions about this code of conduct, see the FAQ at | ||
[https://www.contributor-covenant.org/faq][faq]. Translations are available at | ||
[https://www.contributor-covenant.org/translations][translations]. | ||
|
||
[homepage]: https://www.contributor-covenant.org | ||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html | ||
[mozilla coc]: https://github.com/mozilla/diversity | ||
[faq]: https://www.contributor-covenant.org/faq | ||
[translations]: https://www.contributor-covenant.org/translations |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
--- | ||
title: "Overview" | ||
description: "We welcome any contributions to Infisical, big or small." | ||
--- | ||
|
||
## Community | ||
|
||
It's the early days of Infisical and we're working hard to build an awesome, inclusive community. In order to grow this, all community members must adhere to our Code of conduct. | ||
|
||
## Bugs and issues | ||
|
||
Bug reports help make Infisical a better experience for everyone. When you report a bug, a template will be created automatically containing information we'd like to know. | ||
|
||
Before raising a new issue, please search existing ones to make sure you're not creating a duplicate. | ||
|
||
<Info> | ||
If the issue is related to security, please email us directly at | ||
[email protected]. | ||
</Info> | ||
|
||
## Deciding what to work on | ||
|
||
You can start by browsing through our list of issues or adding your own that improves on the platform experience. Once you've decided on an issue, leave a comment and wait to get approved; this helps avoid multiple people working on the same issue. | ||
|
||
If you're ever in doubt about whether or not a proposed feature aligns with Infisical as a whole, feel free to raise an issue about it and we'll get back to you promptly. | ||
|
||
## Writing and submitting code | ||
|
||
Anyone can contribute code to Infisical. To get started, check out the local development guide, make your changes, and submit a pull request to the main repository. | ||
|
||
## Licensing | ||
|
||
Most of Infisical's code is under the MIT license, though some paid feature restrictions are covered by a proprietary license. | ||
|
||
Any third party components incorporated into our code are licensed under the original license provided by the applicable component owner. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
title: "Developing" | ||
description: "This guide will help you set up and run Infisical in development mode." | ||
--- | ||
|
||
## Clone the repo | ||
|
||
```bash | ||
# change location to the path you want Infisical to be installed | ||
cd ~ | ||
|
||
# clone the repo and cd to Infisical dir | ||
git clone https://github.com/Infisical/infisical | ||
cd infisical | ||
``` | ||
|
||
## Set up environment variables | ||
|
||
Tweak the `.env` according to your preferences. Refer to the available [environment variables](envars). | ||
|
||
```bash | ||
cp .env.example .env | ||
``` | ||
|
||
## Docker for development | ||
|
||
```bash | ||
# build and start the services | ||
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --build | ||
``` | ||
|
||
Then browse http://localhost:3000 | ||
|
||
```bash | ||
# To stop environment use Control+C (on Mac) CTRL+C (on Win) or | ||
docker-compose down | ||
# start services | ||
docker-compose up | ||
``` | ||
|
||
The docker-compose environment consists of: | ||
|
||
- frontend | ||
- backend | ||
- mongo | ||
- mongo-express |
Oops, something went wrong.