summaryrefslogtreecommitdiff
path: root/provider_base/services
diff options
context:
space:
mode:
Diffstat (limited to 'provider_base/services')
-rw-r--r--provider_base/services/ca.json11
-rw-r--r--provider_base/services/couchdb.json28
-rw-r--r--provider_base/services/openvpn.json11
-rw-r--r--provider_base/services/soledad.json6
-rw-r--r--provider_base/services/webapp.json40
5 files changed, 66 insertions, 30 deletions
diff --git a/provider_base/services/ca.json b/provider_base/services/ca.json
deleted file mode 100644
index 3fb8bf6c..00000000
--- a/provider_base/services/ca.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "ca_daemon": {
- "couchdb_hosts": "= hostnames nodes[:services => :couchdb][:local => local]",
- "couchdb_user": "= global.services[:couchdb].couch.users[:ca_daemon]"
- },
- "service_type": "internal_service",
- "x509": {
- "use": true,
- "ca_key": "= file(:ca_key, :missing => 'CA key. Run `leap cert ca` to create the Certificate Authority.')"
- }
-}
diff --git a/provider_base/services/couchdb.json b/provider_base/services/couchdb.json
index 1c8005c2..a26579c8 100644
--- a/provider_base/services/couchdb.json
+++ b/provider_base/services/couchdb.json
@@ -1,21 +1,37 @@
{
- "service_type": "internal_service",
"x509": {
"use": true
},
+ "stunnel": {
+ "couch_server": "= stunnel_server(couch.port)",
+ "epmd_server": "= stunnel_server(couch.bigcouch.epmd_port)",
+ "epmd_clients": "= stunnel_client(nodes_like_me[:services => :couchdb], global.services[:couchdb].couch.bigcouch.epmd_port)",
+ "ednp_server": "= stunnel_server(couch.bigcouch.ednp_port)",
+ "ednp_clients": "= stunnel_client(nodes_like_me[:services => :couchdb], global.services[:couchdb].couch.bigcouch.ednp_port)"
+ },
"couch": {
+ "port": 5984,
+ "bigcouch": {
+ "epmd_port": 4369,
+ "ednp_port": 9002,
+ "cookie": "= secret :bigcouch_cookie",
+ "neighbors": "= nodes_like_me[:services => :couchdb].exclude(self).field('domain.full')"
+ },
"users": {
"admin": {
"username": "admin",
- "password": "= secret :couch_admin_password"
+ "password": "= secret :couch_admin_password",
+ "salt": "= hex_secret :couch_admin_password_salt, 128"
},
"webapp": {
"username": "webapp",
- "password": "= secret :couch_webapp_password"
+ "password": "= secret :couch_webapp_password",
+ "salt": "= hex_secret :couch_webapp_password_salt, 128"
},
- "ca_daemon": {
- "username": "ca_daemon",
- "password": "= secret :couch_ca_daemon_password"
+ "soledad": {
+ "username": "soledad",
+ "password": "= secret :couch_soledad_password",
+ "salt": "= hex_secret :couch_soledad_password_salt, 128"
}
}
}
diff --git a/provider_base/services/openvpn.json b/provider_base/services/openvpn.json
index 7b67ccb3..5d77f946 100644
--- a/provider_base/services/openvpn.json
+++ b/provider_base/services/openvpn.json
@@ -5,12 +5,19 @@
"client_ca_cert": "= file :client_ca_cert, :missing => 'Certificate Authority. Run `leap cert ca`'",
"dh": "= file :dh_params, :missing => 'Diffie-Hellman parameters. Run `leap cert dh`'"
},
+ "location": null,
"openvpn": {
- "location": "Location Unknown",
+ "gateway_address": "REQUIRED",
+ "second_gateway_address": "= openvpn.allow_limited && openvpn.allow_unlimited ? 'REQUIRED' : nil",
"ports": ["80", "443", "53", "1194"],
"protocols": ["tcp", "udp"],
"filter_dns": false,
"adblock": false,
- "user_ips": false
+ "user_ips": false,
+ "allow_limited": "= global.provider.service.allow_limited_bandwidth",
+ "allow_unlimited": "= global.provider.service.allow_unlimited_bandwidth",
+ "limited_prefix": "= global.provider.ca.client_certificates.limited_prefix",
+ "unlimited_prefix": "= global.provider.ca.client_certificates.unlimited_prefix",
+ "rate_limit": "= openvpn.allow_limited ? global.provider.service.bandwidth_limit : nil"
}
}
diff --git a/provider_base/services/soledad.json b/provider_base/services/soledad.json
new file mode 100644
index 00000000..10657563
--- /dev/null
+++ b/provider_base/services/soledad.json
@@ -0,0 +1,6 @@
+{
+ "service_type": "public_service",
+ "soledad": {
+ "port": 1111
+ }
+} \ No newline at end of file
diff --git a/provider_base/services/webapp.json b/provider_base/services/webapp.json
index 8ccd3e3e..93396ec7 100644
--- a/provider_base/services/webapp.json
+++ b/provider_base/services/webapp.json
@@ -1,34 +1,52 @@
{
"webapp": {
"modules": ["user", "billing", "help"],
- "couchdb_hosts": "= hostnames nodes[:services => :couchdb][:local => local]",
- // NOTE: this is bad, but pending a fix to https://leap.se/code/issues/1163
- // before we can use user "webapp"
- "couchdb_user": "= global.services[:couchdb].couch.users[:admin]",
+ "couchdb_admin_user": "= global.services[:couchdb].couch.users[:admin]",
+// "couchdb_webapp_user": "= global.services[:couchdb].couch.users[:webapp]",
+ "couchdb_webapp_user": "= global.services[:couchdb].couch.users[:admin]",
"favicon": "= file_path 'branding/favicon.ico'",
"tail_scss": "= file_path 'branding/tail.scss'",
"head_scss": "= file_path 'branding/head.scss'",
- "img_dir": "= file_path 'branding/img'"
+ "img_dir": "= file_path 'branding/img'",
+ "client_certificates": "= global.provider.ca.client_certificates",
+ "allow_limited_certs": "= global.provider.service.allow_limited_bandwidth",
+ "allow_unlimited_certs": "= global.provider.service.allow_unlimited_bandwidth",
+ "allow_anonymous_certs": "= global.provider.service.allow_anonymous",
+ "secret_token": "= secret :webapp_secret_token",
+ "api_version": 1
+ },
+ "stunnel": {
+ "couch_client": "= stunnel_client(nodes_like_me[:services => :couchdb], global.services[:couchdb].couch.port)"
+ },
+ "haproxy": {
+ "local_ports": "= stunnel.couch_client.field(:accept_port)"
},
"definition_files": {
"provider": "= file :provider_json_template",
- "eip_service": "= file :eip_service_json_template"
+ "eip_service": "= file [:eip_service_json_template, 'v'+webapp.api_version.to_s]",
+ "soledad_service": "= file [:soledad_service_json_template, 'v'+webapp.api_version.to_s]",
+ "smtp_service": "= file [:smtp_service_json_template, 'v'+webapp.api_version.to_s]"
},
"service_type": "public_service",
"api": {
"domain": "= 'api.' + domain.full_suffix",
- "port": "4430"
+ "port": 4430
+ },
+ "nickserver": {
+ "domain": "= 'nicknym.' + domain.full_suffix",
+ "port": 6425,
+ "couchdb_user": "= global.services[:couchdb].couch.users[:admin]"
},
"dns": {
- "aliases": "= [domain.full, api.domain]"
+ "aliases": "= [domain.full_suffix, domain.full, api.domain, nickserver.domain]"
},
"x509": {
"use": true,
"ca_cert": "= file :ca_cert, :missing => 'provider CA. Run `leap cert ca`'",
"client_ca_cert": "= file_path :client_ca_cert",
"client_ca_key": "= file_path :client_ca_key",
- "commercial_cert": "= file [:commercial_cert, global.provider.domain]",
- "commercial_key": "= file [:commercial_key, global.provider.domain]",
+ "commercial_cert": "= file [:commercial_cert, domain.full_suffix]",
+ "commercial_key": "= file [:commercial_key, domain.full_suffix]",
"commercial_ca_cert": "= try_file :commercial_ca_cert"
}
-} \ No newline at end of file
+}