mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
Docs related to running in production. (#174)
* Fixed up api.md, removed Titan references. * Adding more documentation on running in production. * Update deps for ironmq.
This commit is contained in:
38
docs/databases/README.md
Normal file
38
docs/databases/README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
# Databases
|
||||
|
||||
We currently support the following databases and they are passed in via the `DB` environment variable. For example:
|
||||
|
||||
```sh
|
||||
docker run -e "DB=postgres://user:pass@localhost:6212/mydb" ...
|
||||
```
|
||||
|
||||
## [Bolt](https://github.com/boltdb/bolt) (default)
|
||||
|
||||
URL: `bolt:///functions/data/functions.db`
|
||||
|
||||
Bolt is an embedded database which stores to disk. If you want to use this, be sure you don't lose the data directory by mounting
|
||||
the directory on your host. eg: `docker run -v $PWD/data:/functions/data -e DB=bolt:///functions/data/bolt.db ...`
|
||||
|
||||
[More on BoltDB](databases/boltdb.md)
|
||||
|
||||
## [Redis](http://redis.io/)
|
||||
|
||||
URL: `redis://localhost:6379/`
|
||||
|
||||
Use a Redis instance as your database. Be sure to enable [peristence](http://redis.io/topics/persistence).
|
||||
|
||||
[More on Redis](databases/redis.md)
|
||||
|
||||
## [PostgreSQL](http://www.postgresql.org/)
|
||||
|
||||
URL: `postgres://user123:pass456@ec2-117-21-174-214.compute-1.amazonaws.com:6212/db982398`
|
||||
|
||||
Use a PostgreSQL database. If you're using IronFunctions in production, you should probably start here.
|
||||
|
||||
[More on Postgres](databases/postgres.md)
|
||||
|
||||
## What about database X?
|
||||
|
||||
We're happy to add more and we love pull requests, so feel free to add one! Copy one of the implementations above as a starting point.
|
||||
|
||||
11
docs/databases/boltdb.md
Normal file
11
docs/databases/boltdb.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# IronFunctions using BoltDB
|
||||
|
||||
BoltDB is the default database, you just need to run the API.
|
||||
|
||||
## Persistent
|
||||
|
||||
To keep it persistent, add a volume flag to the command:
|
||||
|
||||
```
|
||||
docker run --rm -it --privileged -v $PWD/bolt.db:/app/bolt.db -p 8080:8080 iron/functions
|
||||
```
|
||||
34
docs/databases/postgres.md
Normal file
34
docs/databases/postgres.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# IronFunctions using Postgres
|
||||
|
||||
Let's presuppose you don't have even a postgres DB ready.
|
||||
|
||||
### 1. Let's start a postgres instance:
|
||||
|
||||
```
|
||||
docker run --name iron-postgres \
|
||||
-e POSTGRES_PASSWORD=ironfunctions -d postgres
|
||||
```
|
||||
|
||||
### 2. Now let's create a new database to IronFunctions
|
||||
|
||||
Creating database:
|
||||
|
||||
```
|
||||
docker run -it --rm --link iron-postgres:postgres postgres \
|
||||
psql -h postgres -U postgres -c "CREATE DATABASE funcs;"
|
||||
```
|
||||
|
||||
Granting access to postgres user
|
||||
|
||||
```
|
||||
docker run -it --rm --link iron-postgres:postgres postgres \
|
||||
psql -h postgres -U postgres -c 'GRANT ALL PRIVILEGES ON DATABASE funcs TO postgres;'
|
||||
```
|
||||
|
||||
### 3. Now let's start IronFunctions connecting to our new postgres instance
|
||||
|
||||
```
|
||||
docker run --rm --link "iron-postgres:postgres" \
|
||||
-e "DB=postgres://postgres:ironfunctions@postgres/funcs?sslmode=disable" \
|
||||
-it -p 8080:8080 iron/functions
|
||||
```
|
||||
Reference in New Issue
Block a user