-
Notifications
You must be signed in to change notification settings - Fork 0
Home
TETHYS - Data Publisher for Geoscience Austria is a digital data library and a data publisher for earth system science. Data can be georeferenced in time (date/time) and space (latitude, longitude, depth/height)
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Please check the official laravel installation guide for server requirements before you start. Official Documentation
Create web folder:
sudo mkdir -p /var/www/tethys-app/
sudo chown -R administrator:administrator /var/www/tethys-app/
Clone the repository to your web folder:
git clone https://github.com/geolba/tethys.git /var/www/tethys-app/
Switch to the repo folder:
cd /var/www/tethys-app/
Install all the dependencies using composer
composer install --optimize-autoloader --no-dev
Copy the example env file and make the required configuration changes in the .env file
cp .env.example .env
.env
- Environment variables can be set in this file
Configure your database connection in .env-file e.g.:
nano .env
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_PORT=5432
DB_DATABASE=tethys
DB_USERNAME=tethys_admin
DB_PASSWORD=new_password_here
DB_SCHEMA=gba
also set the solr connection string:
SOLR_HOST=localhost
SOLR_CORE=tethys_data
Note : You can quickly set the database information, the solr connection string and other variables in this file and have the application fully working.
Save and close the file and generate a new application key
php artisan key:generate
Run the database migrations (Set the database connection in .env before migrating)
php artisan migrate
Grant folder permissions for webserver user
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
To develop locally, you must run a local web server. To run:
php artisan serve
This will start the server on http://localhost:8080 from the current working directory.
stop the service:
Strg + C
sudo nano /etc/nginx/sites-available/tethys-app
http-only configuration:
server {
listen 80;
listen [::]:80;
server_name localhost;
root /var/www/tethys-app/public/;
client_max_body_size 100M;
index index.html index.htm index.php;
charset utf-8;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
index index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* { deny all;}
}
alternate https and http configuration:
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
server_name localhost;
root /var/www/tethys-app/public/;
client_max_body_size 100M;
index index.html index.htm index.php;
charset utf-8;
# path to https-certificate
ssl_certificate /etc/ssl/your_domain.pem;
ssl_certificate_key /etc/ssl/your_domain.key;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
index index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
include fastcgi.conf;
}
location ~ /\.(?!well-known).* { deny all;}
}
server {
if ($host = repository.geologie.ac.at) {
return 301 https://$host$request_uri;
}
listen 80;
listen [::]:80;
server_name localhost;
return 404;
}
symlinking the created site to enabled folder:
sudo ln -s /etc/nginx/sites-available/tethys-app /etc/nginx/sites-enabled/
test nginx configuration:
sudo nginx -t
if everything is successful, reload updated nginx configuration:
sudo service nginx reload
The website is available at the following link: http://localhost:80
sudo certbot certonly --nginx --webroot-path=/var/www/tethys-app/ -d www.your_domain.at -d your_domain.at
Adapt the settings 'ssl_certificate' and 'ssl_certificate_key' in the following file /etc/nginx/sites-available/tethys-app:
sudo nano /etc/nginx/sites-available/tethys-app
ssl_certificate /etc/letsencrypt/live/www.your_domain.at/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.your_domain.at/privkey.pem;
Certbot will autmatically renew outdated certificates. Sytemd services 'cerbot.service' and 'certbot.timer' are checking twice daily whether certificates have been expired.