mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 01:47:18 +02:00
Readme refactor
This commit is contained in:
parent
7f1eb48b03
commit
efcbe1ad99
3 changed files with 182 additions and 123 deletions
134
README.md
134
README.md
|
@ -23,7 +23,7 @@ Installation
|
||||||
|
|
||||||
### Registry app
|
### Registry app
|
||||||
|
|
||||||
Usual Rails 4 app installation (rbenv install is under Debian build doc)
|
Registry based on Rails 4 installation (rbenv install is under Debian build doc)
|
||||||
|
|
||||||
Manual demo install and database setup:
|
Manual demo install and database setup:
|
||||||
|
|
||||||
|
@ -32,45 +32,11 @@ Manual demo install and database setup:
|
||||||
cd demo-registry
|
cd demo-registry
|
||||||
rbenv local 2.2.0
|
rbenv local 2.2.0
|
||||||
bundle
|
bundle
|
||||||
|
cp config/application-example.yml config/application.yml # and edit it
|
||||||
cp config/database-example.yml config/database.yml # and edit it
|
cp config/database-example.yml config/database.yml # and edit it
|
||||||
cp config/initializers/devise_secret_example.rb.txt config/initializers/devise_secret.rb # and edit
|
bundle exec rake db:all:setup # for production, please follow deployment howto
|
||||||
bundle exec rake assets:precompile
|
bundle exec rake assets:precompile
|
||||||
|
|
||||||
Create registry database manually, example:
|
|
||||||
|
|
||||||
create database registry_production owner registry encoding 'UTF-8' LC_COLLATE 'et_EE.utf8' LC_CTYPE 'et_EE.utf8' template template0;
|
|
||||||
rake db:schema:load
|
|
||||||
rake db:seeds
|
|
||||||
|
|
||||||
Or create all databases:
|
|
||||||
|
|
||||||
rake db:all:setup # will create all databases, loads all schemas and seeds
|
|
||||||
# other similar tasks if needed later:
|
|
||||||
# rake db:all:create # creates all databases only
|
|
||||||
# rake db:all:schema:load # loads all schemas
|
|
||||||
# rake db:all:schema:dump # dumps all schemas
|
|
||||||
|
|
||||||
Production install (database schema should be loaded and seeds should be present)
|
|
||||||
|
|
||||||
# at your local machine
|
|
||||||
git clone git@github.com:internetee/registry.git
|
|
||||||
cd registry
|
|
||||||
rbenv local 2.2.0 # more info about rbenv at debian doc
|
|
||||||
gem install mina
|
|
||||||
mina pr setup # one time, only creates missing directories
|
|
||||||
ssh registry
|
|
||||||
|
|
||||||
# at your server
|
|
||||||
cd registry
|
|
||||||
cp current/config/application-example.yml shared/config/application.yml # and edit it
|
|
||||||
cp current/config/database-example.yml shared/config/database.yml # and edit it
|
|
||||||
|
|
||||||
vi /etc/apache2/sites-enabled/registry.conf # add conf and all needed serts
|
|
||||||
vi /etc/apache2/sites-enabled/epp.conf # add epp conf, restart apache
|
|
||||||
exit
|
|
||||||
# at your local machine
|
|
||||||
mina pr deploy # this is command you use in every application code update
|
|
||||||
|
|
||||||
### Apache with patched mod_epp (Debian 7/Ubuntu 14.04 LTS)
|
### Apache with patched mod_epp (Debian 7/Ubuntu 14.04 LTS)
|
||||||
|
|
||||||
sudo apt-get install apache2
|
sudo apt-get install apache2
|
||||||
|
@ -187,11 +153,22 @@ All registry demo data can be found at:
|
||||||
|
|
||||||
Initially you can use two type of users: admin users and EPP users.
|
Initially you can use two type of users: admin users and EPP users.
|
||||||
|
|
||||||
|
|
||||||
### Certificates setup
|
### Certificates setup
|
||||||
|
|
||||||
* [Certificates setup](/doc/certificates.md)
|
* [Certificates setup](/doc/certificates.md)
|
||||||
|
|
||||||
|
|
||||||
|
### Deployment
|
||||||
|
|
||||||
|
* [Application build and update](/doc/application_build_doc.md)
|
||||||
|
|
||||||
|
|
||||||
|
### Autotesting
|
||||||
|
|
||||||
|
* [Testing](/doc/testing.md)
|
||||||
|
|
||||||
|
|
||||||
### EPP web client
|
### EPP web client
|
||||||
|
|
||||||
Please follow EPP web client readme:
|
Please follow EPP web client readme:
|
||||||
|
@ -206,89 +183,6 @@ Please follow WHOIS server readme:
|
||||||
https://github.com/internetee/whois
|
https://github.com/internetee/whois
|
||||||
|
|
||||||
|
|
||||||
Deployment
|
|
||||||
----------
|
|
||||||
|
|
||||||
* [Debian build](/doc/debian_build_doc.md)
|
|
||||||
* [Application build and update](/doc/application_build_doc.md)
|
|
||||||
|
|
||||||
CRON
|
|
||||||
----
|
|
||||||
|
|
||||||
Crontab can be setup after deploy. Jobs can be viewed [here](/config/schedule.rb).
|
|
||||||
|
|
||||||
mina pr cron:setup # to update the crontab.
|
|
||||||
mina pr cron:clear # to clear crontab.
|
|
||||||
|
|
||||||
Autotesting
|
|
||||||
-----------
|
|
||||||
|
|
||||||
* Before running tests for the first time: `RAILS_ENV=test rake db:seed`
|
|
||||||
* Run tests: `rake`
|
|
||||||
* Run EPP tests: `rake test:epp`
|
|
||||||
* Run all but EPP tests: `rake test:other`
|
|
||||||
|
|
||||||
To see internal errors while testing EPP
|
|
||||||
|
|
||||||
unicorn -E test -p 8989
|
|
||||||
rake spec:epp
|
|
||||||
|
|
||||||
### Apache mod_epp autotesting/debugging
|
|
||||||
|
|
||||||
Autotesting Apache mod_epp without Registry app.
|
|
||||||
|
|
||||||
sudo apt-get install apache2-dbg
|
|
||||||
|
|
||||||
Includes htpasswd command to generate authentication files
|
|
||||||
|
|
||||||
sudo apt-get install apache2-utils
|
|
||||||
|
|
||||||
For manual debugging purposes, standalone CGI scripts can be used:
|
|
||||||
This needs a static greeting file, so you will have to make /var/www writable.
|
|
||||||
|
|
||||||
```apache
|
|
||||||
<IfModule mod_epp.c>
|
|
||||||
<Directory "/usr/lib/cgi-bin/epp">
|
|
||||||
Options ExecCGI
|
|
||||||
SetHandler cgi-script
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
Listen 1700
|
|
||||||
|
|
||||||
<VirtualHost *:1700>
|
|
||||||
EPPEngine On
|
|
||||||
EPPCommandRoot /cgi-bin/epp/command
|
|
||||||
EPPSessionRoot /cgi-bin/epp/session
|
|
||||||
EPPErrorRoot /cgi-bin/epp/error
|
|
||||||
|
|
||||||
Alias /cgi-bin/epp/session/hello /var/www/html/epp/session-hello
|
|
||||||
|
|
||||||
Alias /cgi-bin/epp/session/login /usr/lib/cgi-bin/epp/session-login
|
|
||||||
Alias /cgi-bin/epp/session/logout /usr/lib/cgi-bin/epp/session-logout
|
|
||||||
Alias /cgi-bin/epp/error/schema /usr/lib/cgi-bin/epp/error-schema
|
|
||||||
Alias /cgi-bin/epp/command/create /usr/lib/cgi-bin/epp/create
|
|
||||||
Alias /cgi-bin/epp/command/info /usr/lib/cgi-bin/epp/info
|
|
||||||
|
|
||||||
EPPAuthURI /epp/auth/login
|
|
||||||
<Location /epp/auth>
|
|
||||||
AuthType Basic
|
|
||||||
AuthName "EPP"
|
|
||||||
AuthUserFile /etc/apache2/htpasswd
|
|
||||||
require valid-user
|
|
||||||
</Location>
|
|
||||||
</VirtualHost>
|
|
||||||
</IfModule>
|
|
||||||
```
|
|
||||||
|
|
||||||
sudo a2enmod cgi
|
|
||||||
sudo a2enmod authn_file # will be used for non implicit authentication URIs
|
|
||||||
sudo htpasswd -c /etc/apache2/htpasswd test
|
|
||||||
Type "test" when prompted
|
|
||||||
cd /usr/lib/cgi-bin
|
|
||||||
mkdir epp
|
|
||||||
|
|
||||||
Copy the files from $mod_epp/examples/cgis to /usr/lib/cgi-bin/epp
|
|
||||||
|
|
||||||
## Code Status
|
## Code Status
|
||||||
|
|
||||||
Alpha release status, only model tests:
|
Alpha release status, only model tests:
|
||||||
|
|
|
@ -1,7 +1,48 @@
|
||||||
### Application build and update
|
Application build and update
|
||||||
|
----------------------------
|
||||||
|
|
||||||
For application deployment we are using faster [Mina](https://github.com/mina-deploy/mina)
|
### Debian setup
|
||||||
instead of Capistrano.
|
|
||||||
|
* [Debian build](/doc/debian_build_doc.md)
|
||||||
|
|
||||||
|
|
||||||
|
### Certificates setup
|
||||||
|
|
||||||
|
* [Certificates setup](/doc/certificates.md)
|
||||||
|
|
||||||
|
|
||||||
|
### Production env setup
|
||||||
|
|
||||||
|
For production you probably would like to create databases to your locale, example:
|
||||||
|
|
||||||
|
create database registry_production owner registry encoding 'UTF-8' LC_COLLATE 'et_EE.utf8' LC_CTYPE 'et_EE.utf8' template template0;
|
||||||
|
|
||||||
|
Deploy overview: (database schema should be loaded and seeds should be present)
|
||||||
|
|
||||||
|
# at your local machine
|
||||||
|
git clone git@github.com:internetee/registry.git
|
||||||
|
cd registry
|
||||||
|
rbenv local 2.2.0 # more info about rbenv at debian doc
|
||||||
|
gem install mina
|
||||||
|
mina pr setup # one time, only creates missing directories
|
||||||
|
ssh registry
|
||||||
|
|
||||||
|
# at your server
|
||||||
|
cd registry
|
||||||
|
cp current/config/application-example.yml shared/config/application.yml # and edit it
|
||||||
|
cp current/config/database-example.yml shared/config/database.yml # and edit it
|
||||||
|
|
||||||
|
vi /etc/apache2/sites-enabled/registry.conf # add conf and all needed serts
|
||||||
|
vi /etc/apache2/sites-enabled/epp.conf # add epp conf, restart apache
|
||||||
|
exit
|
||||||
|
# at your local machine
|
||||||
|
mina pr deploy # this is command you use in every application code update
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Deploy script setup
|
||||||
|
|
||||||
|
We recommend [Mina](https://github.com/mina-deploy/mina) instead of Capistrano for deployment.
|
||||||
|
|
||||||
All deploy code locates at config/deploy.rb file.
|
All deploy code locates at config/deploy.rb file.
|
||||||
|
|
||||||
|
@ -68,3 +109,13 @@ General rake and mina tips:
|
||||||
rake -T # list all rake commands
|
rake -T # list all rake commands
|
||||||
rake -T db # list all database related commands
|
rake -T db # list all database related commands
|
||||||
mina -T # list all mina deploy commands
|
mina -T # list all mina deploy commands
|
||||||
|
|
||||||
|
|
||||||
|
CRON
|
||||||
|
----
|
||||||
|
|
||||||
|
Crontab can be setup after deploy. Jobs can be viewed [here](/config/schedule.rb).
|
||||||
|
|
||||||
|
mina pr cron:setup # to update the crontab.
|
||||||
|
mina pr cron:clear # to clear crontab.
|
||||||
|
|
||||||
|
|
114
doc/testing.md
Normal file
114
doc/testing.md
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
Setup test databases:
|
||||||
|
|
||||||
|
RAILS_ENV=test rake db:all:setup
|
||||||
|
|
||||||
|
Run basic test (no EPP tests):
|
||||||
|
|
||||||
|
rake
|
||||||
|
|
||||||
|
|
||||||
|
Testing EPP
|
||||||
|
===========
|
||||||
|
|
||||||
|
In order to test EPP, you have to configure apache to handle EPP request correctly.
|
||||||
|
|
||||||
|
### Apache site config
|
||||||
|
|
||||||
|
First you should have mod_epp installed, please follow main README for doing it.
|
||||||
|
|
||||||
|
Apache site config for autotest, add file to /etc/apache2/sites-enabled/epp-autotest.conf
|
||||||
|
|
||||||
|
```apache
|
||||||
|
<IfModule mod_epp.c>
|
||||||
|
Listen 701
|
||||||
|
<VirtualHost *:701>
|
||||||
|
SSLEngine on
|
||||||
|
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
|
||||||
|
SSLCertificateFile /etc/apache2/ssl/apache.crt
|
||||||
|
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
|
||||||
|
|
||||||
|
SSLVerifyClient optional_no_ca
|
||||||
|
|
||||||
|
EPPEngine On
|
||||||
|
EPPCommandRoot /proxy/command
|
||||||
|
EPPSessionRoot /proxy/session
|
||||||
|
EPPErrorRoot /proxy/error
|
||||||
|
EPPRawFrame raw_frame
|
||||||
|
|
||||||
|
ProxyPass /proxy/ http://localhost:8989/epp/
|
||||||
|
|
||||||
|
EPPAuthURI implicit
|
||||||
|
EPPReturncodeHeader X-EPP-Returncode
|
||||||
|
</VirtualHost>
|
||||||
|
</IfModule>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Run all tests with temp server running automatically on port 8989:
|
||||||
|
|
||||||
|
rake test
|
||||||
|
|
||||||
|
|
||||||
|
Manual debugging
|
||||||
|
================
|
||||||
|
|
||||||
|
### Apache mod_epp manual debugging
|
||||||
|
|
||||||
|
Debugging Apache mod_epp without Registry app.
|
||||||
|
|
||||||
|
sudo apt-get install apache2-dbg
|
||||||
|
|
||||||
|
Includes htpasswd command to generate authentication files
|
||||||
|
|
||||||
|
sudo apt-get install apache2-utils
|
||||||
|
|
||||||
|
For manual debugging purposes, standalone CGI scripts can be used:
|
||||||
|
This needs a static greeting file, so you will have to make /var/www writable.
|
||||||
|
|
||||||
|
```apache
|
||||||
|
<IfModule mod_epp.c>
|
||||||
|
<Directory "/usr/lib/cgi-bin/epp">
|
||||||
|
Options ExecCGI
|
||||||
|
SetHandler cgi-script
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
Listen 1700
|
||||||
|
|
||||||
|
<VirtualHost *:1700>
|
||||||
|
EPPEngine On
|
||||||
|
EPPCommandRoot /cgi-bin/epp/command
|
||||||
|
EPPSessionRoot /cgi-bin/epp/session
|
||||||
|
EPPErrorRoot /cgi-bin/epp/error
|
||||||
|
|
||||||
|
Alias /cgi-bin/epp/session/hello /var/www/html/epp/session-hello
|
||||||
|
|
||||||
|
Alias /cgi-bin/epp/session/login /usr/lib/cgi-bin/epp/session-login
|
||||||
|
Alias /cgi-bin/epp/session/logout /usr/lib/cgi-bin/epp/session-logout
|
||||||
|
Alias /cgi-bin/epp/error/schema /usr/lib/cgi-bin/epp/error-schema
|
||||||
|
Alias /cgi-bin/epp/command/create /usr/lib/cgi-bin/epp/create
|
||||||
|
Alias /cgi-bin/epp/command/info /usr/lib/cgi-bin/epp/info
|
||||||
|
|
||||||
|
EPPAuthURI /epp/auth/login
|
||||||
|
<Location /epp/auth>
|
||||||
|
AuthType Basic
|
||||||
|
AuthName "EPP"
|
||||||
|
AuthUserFile /etc/apache2/htpasswd
|
||||||
|
require valid-user
|
||||||
|
</Location>
|
||||||
|
</VirtualHost>
|
||||||
|
</IfModule>
|
||||||
|
```
|
||||||
|
|
||||||
|
sudo a2enmod cgi
|
||||||
|
sudo a2enmod authn_file # will be used for non implicit authentication URIs
|
||||||
|
sudo htpasswd -c /etc/apache2/htpasswd test
|
||||||
|
Type "test" when prompted
|
||||||
|
cd /usr/lib/cgi-bin
|
||||||
|
mkdir epp
|
||||||
|
|
||||||
|
Copy the files from $mod_epp/examples/cgis to /usr/lib/cgi-bin/epp
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue