# Hydra install
## Setup hosts
Host hydra
Host postgress
Vagrantfile
```
# -*- mode: ruby -*-
# vi: set ft=ruby :
boxes = [
{
:name => "hydra",
:eth1 => "192.168.33.12",
:mem => "1024",
:cpu => "1"
},
{
:name => "postgresql",
:eth1 => "192.168.33.13",
:mem => "1024",
:cpu => "1"
}
]
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provision "file", source: "~/.ssh/id_rsa.pub", destination: "~/.ssh/me.pub"
config.vm.provision "shell", inline: <<-SHELL
cat /home/vagrant/.ssh/me.pub >> /home/vagrant/.ssh/authorized_keys
SHELL
boxes.each_with_index do |opts, index|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "virtualbox" do |vb|
vb.memory = opts[:mem]
vb.cpus = opts[:cpu]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
end
```
Run via docker
## Install Postgre
```bash
sudo apt update
sudo apt install docker.io -y
```
```bash
sudo docker run --name ory-hydra-postgres -e POSTGRES_USER=hydra -e POSTGRES_PASSWORD=secret -e POSTGRES_DB=hydra -p 5432:5432 -d postgres:9.6
```
## Install Hydra
```bash
sudo apt update
sudo apt install docker.io -y
```
```bash
export SECRETS_SYSTEM=$(export LC_CTYPE=C; cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
```
```bash
export DSN=postgres://hydra:secret@192.168.33.13:5432/hydra?sslmode=disable
```
```bash
sudo docker pull oryd/hydra:v1.10.6
```
```bash
sudo docker run -it --rm oryd/hydra:v1.10.6 migrate sql --yes $DSN
```
```bash
sudo docker run -d --name ory-hydra -p 9000:4444 -p 9001:4445 -e SECRETS_SYSTEM=$SECRETS_SYSTEM -e DSN=$DSN -e URLS_SELF_ISSUER=https://192.168.33.12:9000/ -e URLS_CONSENT=http://192.168.33.12:9020/consent -e URLS_LOGIN=http://192.168.33.12:9020/login oryd/hydra:v1.10.6 serve all
```
## Работа с Гидрой
-p 9000:4444 exposes ORY Hydra's public API on https://localhost:9000/.
-p 9001:4445 exposes ORY Hydra's administrative API on https://localhost:9001/.