Add CKAN install script (squashed commit)
This commit is contained in:
parent
20c5161dc5
commit
f02dfb9914
@ -127,6 +127,12 @@ systemctl restart nginx
|
|||||||
# Install packages
|
# Install packages
|
||||||
apt-get -y --no-install-recommends install postgresql-9.6 postgresql-9.6-postgis postgresql-contrib-9.6
|
apt-get -y --no-install-recommends install postgresql-9.6 postgresql-9.6-postgis postgresql-contrib-9.6
|
||||||
|
|
||||||
|
# Install Czech search data
|
||||||
|
wget http://postgres.cz/data/czech.tar.gz -O /tmp/czech.tar.gz
|
||||||
|
tar xzf /tmp/czech.tar.gz -C /usr/share/postgresql/9.6/tsearch_data --strip-components 1
|
||||||
|
chown root:root /usr/share/postgresql/9.6/tsearch_data/czech.*
|
||||||
|
rm -f /tmp/czech.tar.gz
|
||||||
|
|
||||||
# Configure
|
# Configure
|
||||||
cp ${SOURCE_DIR}/basic/etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf
|
cp ${SOURCE_DIR}/basic/etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf
|
||||||
cp ${SOURCE_DIR}/basic/etc/postgresql/9.6/main/pg_hba.conf /etc/postgresql/9.6/main/pg_hba.conf
|
cp ${SOURCE_DIR}/basic/etc/postgresql/9.6/main/pg_hba.conf /etc/postgresql/9.6/main/pg_hba.conf
|
||||||
|
112
30-ckan.sh
Executable file
112
30-ckan.sh
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SOURCE_DIR=$(realpath $(dirname "${0}"))
|
||||||
|
|
||||||
|
# Install dependencies for CKAN
|
||||||
|
apt-get -y --no-install-recommends install gcc libpq-dev python-dev python-virtualenv redis-server uuid-runtime virtualenv
|
||||||
|
|
||||||
|
# Install dependencies for Solr
|
||||||
|
apt-get -y --no-install-recommends install openjdk-8-jre-headless lsof
|
||||||
|
|
||||||
|
# Install CKAN python virtual environment
|
||||||
|
mkdir -p /srv/ckan
|
||||||
|
virtualenv --no-site-packages --python=/usr/bin/python2.7 /srv/ckan
|
||||||
|
. /srv/ckan/bin/activate
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan'
|
||||||
|
pip install -e 'git+https://github.com/ckan/datapusher.git#egg=datapusher'
|
||||||
|
pip install -r /srv/ckan/src/ckan/requirements.txt
|
||||||
|
pip install -r /srv/ckan/src/datapusher/requirements.txt
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
# Donwload Solr
|
||||||
|
wget http://archive.apache.org/dist/lucene/solr/6.5.1/solr-6.5.1.tgz -O /tmp/solr-6.5.1.tgz
|
||||||
|
tar xzf /tmp/solr-6.5.1.tgz -C /opt/
|
||||||
|
mv /opt/solr-6.5.1 /opt/solr
|
||||||
|
rm -f /tmp/solr-6.5.1.tgz
|
||||||
|
|
||||||
|
# Create database
|
||||||
|
export CKAN_PWD=$(head -c 18 /dev/urandom | base64)
|
||||||
|
export CKAN_DS_PWD=$(head -c 18 /dev/urandom | base64)
|
||||||
|
envsubst <${SOURCE_DIR}/ckan/tmp/ckan-createdb.sql >/tmp/ckan-createdb.sql
|
||||||
|
sudo -u postgres psql -f /tmp/ckan-createdb.sql
|
||||||
|
rm -f /tmp/ckan-createdb.sql
|
||||||
|
|
||||||
|
# Create CKAN OS user
|
||||||
|
adduser --system --group --home /srv/ckan --shell /bin/false ckan
|
||||||
|
chown -R ckan:ckan /srv/ckan/
|
||||||
|
mkdir /var/lib/ckan
|
||||||
|
chown ckan:ckan /var/lib/ckan
|
||||||
|
|
||||||
|
# Create Solr OS user
|
||||||
|
adduser --system --group --home /var/lib/solr --shell /bin/false solr
|
||||||
|
chown -R solr:solr /opt/solr/
|
||||||
|
|
||||||
|
# Configure Solr
|
||||||
|
cp ${SOURCE_DIR}/ckan/lib/systemd/system/solr.service /lib/systemd/system/solr.service
|
||||||
|
cp -p /opt/solr/server/solr/solr.xml /var/lib/solr/
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable solr
|
||||||
|
systemctl start solr
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# Configure CKAN Solr core
|
||||||
|
sudo -u solr /opt/solr/bin/solr create -c ckan
|
||||||
|
cp ${SOURCE_DIR}/ckan/var/lib/solr/ckan/conf/solrconfig.xml /var/lib/solr/ckan/conf/solrconfig.xml
|
||||||
|
ln -s /srv/ckan/src/ckan/ckan/config/solr/schema.xml /var/lib/solr/ckan/conf/schema.xml
|
||||||
|
systemctl restart solr
|
||||||
|
|
||||||
|
# Configure CKAN
|
||||||
|
export CKAN_SECRET=$(head -c 18 /dev/urandom | base64)
|
||||||
|
export CKAN_UUID=$(uuidgen -r)
|
||||||
|
export CKAN_DSJOB_SECRET=$(uuidgen -r)
|
||||||
|
export CKAN_DSJOB_USER=$(uuidgen -r)
|
||||||
|
export CKAN_DSJOB_PWD=$(uuidgen -r)
|
||||||
|
mkdir /etc/ckan
|
||||||
|
envsubst <${SOURCE_DIR}/ckan/etc/ckan/ckan.ini >/etc/ckan/ckan.ini
|
||||||
|
envsubst <${SOURCE_DIR}/ckan/etc/ckan/datapusher_settings.py >/etc/ckan/datapusher_settings.py
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/ckan/datapusher.wsgi /etc/ckan/datapusher.wsgi
|
||||||
|
ln -s /srv/ckan/src/ckan/ckan/config/who.ini /etc/ckan/who.ini
|
||||||
|
cp ${SOURCE_DIR}/ckan/srv/ckan/update-ip.sh /srv/ckan/update-ip.sh
|
||||||
|
/srv/ckan/update-ip.sh
|
||||||
|
|
||||||
|
# Populate database
|
||||||
|
. /srv/ckan/bin/activate
|
||||||
|
paster --plugin=ckan db init -c /etc/ckan/ckan.ini
|
||||||
|
paster --plugin=ckan datastore set-permissions -c /etc/ckan/ckan.ini | sudo -u postgres psql
|
||||||
|
|
||||||
|
# Create admin account
|
||||||
|
export CKAN_ADMIN_USER="admin"
|
||||||
|
export CKAN_ADMIN_UUID=$(uuidgen -r)
|
||||||
|
export CKAN_ADMIN_APIKEY=$(uuidgen -r)
|
||||||
|
export CKAN_ADMIN_PWD=$(head -c 12 /dev/urandom | base64)
|
||||||
|
export CKAN_ADMIN_HASH=$(python ${SOURCE_DIR}/ckan/ckan-adminpwd.py ${CKAN_ADMIN_PWD})
|
||||||
|
export CKAN_ADMIN_EMAIL="admin@example.com"
|
||||||
|
envsubst <${SOURCE_DIR}/ckan/tmp/ckan-adminpwd.sql >/tmp/ckan-adminpwd.sql
|
||||||
|
sudo -u postgres psql -f /tmp/ckan-adminpwd.sql ckan
|
||||||
|
rm /tmp/ckan-adminpwd.sql
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
# Create uwsgi and nginx app definition
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/uwsgi/apps-available/ckan.ini /etc/uwsgi/apps-available/ckan.ini
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/uwsgi/apps-available/ckan-datapusher.ini /etc/uwsgi/apps-available/ckan-datapusher.ini
|
||||||
|
ln -s /etc/uwsgi/apps-available/ckan.ini /etc/uwsgi/apps-enabled/ckan.ini
|
||||||
|
ln -s /etc/uwsgi/apps-available/ckan-datapusher.ini /etc/uwsgi/apps-enabled/ckan-datapusher.ini
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/nginx/apps-available/ckan /etc/nginx/apps-available/ckan
|
||||||
|
ln -s /etc/nginx/apps-available/ckan /etc/nginx/apps-enabled/ckan
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/nginx/sites-available/ckan-datapusher /etc/nginx/sites-available/ckan-datapusher
|
||||||
|
ln -s /etc/nginx/sites-available/ckan-datapusher /etc/nginx/sites-enabled/ckan-datapusher
|
||||||
|
|
||||||
|
# Restart services
|
||||||
|
systemctl restart uwsgi
|
||||||
|
systemctl restart nginx
|
||||||
|
|
||||||
|
# Install cron job
|
||||||
|
cp ${SOURCE_DIR}/ckan/srv/ckan/cron-pageviews.sh /srv/ckan/cron-pageviews.sh
|
||||||
|
cp ${SOURCE_DIR}/ckan/etc/cron.d/ckan /etc/cron.d/ckan
|
||||||
|
|
||||||
|
# Add portal application definition
|
||||||
|
${SOURCE_DIR}/basic/portal-app-manager.py ckan "/ckan/" "${CKAN_ADMIN_USER}" "${CKAN_ADMIN_PWD}"
|
||||||
|
|
||||||
|
# Remove compilation dependencies
|
||||||
|
apt-get -y purge gcc libpq-dev python-dev
|
||||||
|
apt-get -y --purge autoremove
|
6
ckan/ckan-adminpwd.py
Normal file
6
ckan/ckan-adminpwd.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from passlib.hash import pbkdf2_sha512
|
||||||
|
|
||||||
|
print pbkdf2_sha512.encrypt(sys.argv[1])
|
224
ckan/etc/ckan/ckan.ini
Normal file
224
ckan/etc/ckan/ckan.ini
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
#
|
||||||
|
# CKAN - Pylons configuration
|
||||||
|
#
|
||||||
|
# These are some of the configuration options available for your CKAN
|
||||||
|
# instance. Check the documentation in 'doc/configuration.rst' or at the
|
||||||
|
# following URL for a description of what they do and the full list of
|
||||||
|
# available options:
|
||||||
|
#
|
||||||
|
# http://docs.ckan.org/en/latest/maintaining/configuration.html
|
||||||
|
#
|
||||||
|
# The %(here)s variable will be replaced with the parent directory of this file
|
||||||
|
#
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
# WARNING: *THIS SETTING MUST BE SET TO FALSE ON A PRODUCTION ENVIRONMENT*
|
||||||
|
debug = false
|
||||||
|
|
||||||
|
[server:main]
|
||||||
|
use = egg:Paste#http
|
||||||
|
host = 0.0.0.0
|
||||||
|
port = 5000
|
||||||
|
|
||||||
|
[app:main]
|
||||||
|
use = egg:ckan
|
||||||
|
full_stack = true
|
||||||
|
cache_dir = /tmp/%(ckan.site_id)s/
|
||||||
|
beaker.session.key = ckan
|
||||||
|
|
||||||
|
# This is the secret token that the beaker library uses to hash the cookie sent
|
||||||
|
# to the client. `paster make-config` generates a unique value for this each
|
||||||
|
# time it generates a config file.
|
||||||
|
beaker.session.secret = ${CKAN_SECRET}
|
||||||
|
|
||||||
|
# `paster make-config` generates a unique value for this each time it generates
|
||||||
|
# a config file.
|
||||||
|
app_instance_uuid = ${CKAN_UUID}
|
||||||
|
|
||||||
|
# repoze.who config
|
||||||
|
who.config_file = %(here)s/who.ini
|
||||||
|
who.log_level = warning
|
||||||
|
who.log_file = %(cache_dir)s/who_log.ini
|
||||||
|
# Session timeout (user logged out after period of inactivity, in seconds).
|
||||||
|
# Inactive by default, so the session doesn't expire.
|
||||||
|
# who.timeout = 86400
|
||||||
|
|
||||||
|
## Database Settings
|
||||||
|
sqlalchemy.url = postgresql://ckan:${CKAN_PWD}@localhost/ckan
|
||||||
|
|
||||||
|
ckan.datastore.write_url = postgresql://ckan:${CKAN_PWD}@localhost/ckan_datastore
|
||||||
|
ckan.datastore.read_url = postgresql://ckan_datastore:${CKAN_DS_PWD}@localhost/ckan_datastore
|
||||||
|
|
||||||
|
# PostgreSQL' full-text search parameters
|
||||||
|
ckan.datastore.default_fts_lang = czech
|
||||||
|
ckan.datastore.default_fts_index_method = gist
|
||||||
|
|
||||||
|
## Site Settings
|
||||||
|
|
||||||
|
ckan.site_url = http://127.0.0.1
|
||||||
|
ckan.root_path = /ckan/{{LANG}}
|
||||||
|
#ckan.use_pylons_response_cleanup_middleware = true
|
||||||
|
|
||||||
|
## Authorization Settings
|
||||||
|
|
||||||
|
ckan.auth.anon_create_dataset = false
|
||||||
|
ckan.auth.create_unowned_dataset = false
|
||||||
|
ckan.auth.create_dataset_if_not_in_organization = false
|
||||||
|
ckan.auth.user_create_groups = false
|
||||||
|
ckan.auth.user_create_organizations = false
|
||||||
|
ckan.auth.user_delete_groups = false
|
||||||
|
ckan.auth.user_delete_organizations = false
|
||||||
|
ckan.auth.create_user_via_api = false
|
||||||
|
ckan.auth.create_user_via_web = false
|
||||||
|
ckan.auth.roles_that_cascade_to_sub_groups = admin
|
||||||
|
|
||||||
|
|
||||||
|
## Search Settings
|
||||||
|
|
||||||
|
ckan.site_id = default
|
||||||
|
solr_url = http://127.0.0.1:8983/solr/ckan
|
||||||
|
|
||||||
|
|
||||||
|
## Redis Settings
|
||||||
|
|
||||||
|
# URL to your Redis instance, including the database to be used.
|
||||||
|
ckan.redis.url = redis://localhost:6379/0
|
||||||
|
|
||||||
|
|
||||||
|
## CORS Settings
|
||||||
|
|
||||||
|
# If cors.origin_allow_all is true, all origins are allowed.
|
||||||
|
# If false, the cors.origin_whitelist is used.
|
||||||
|
# ckan.cors.origin_allow_all = true
|
||||||
|
# cors.origin_whitelist is a space separated list of allowed domains.
|
||||||
|
# ckan.cors.origin_whitelist = http://example1.com http://example2.com
|
||||||
|
|
||||||
|
|
||||||
|
## Plugins Settings
|
||||||
|
|
||||||
|
# Note: Add ``datastore`` to enable the CKAN DataStore
|
||||||
|
# Add ``datapusher`` to enable DataPusher
|
||||||
|
# Add ``resource_proxy`` to enable resorce proxying and get around the
|
||||||
|
# same origin policy
|
||||||
|
ckan.plugins = stats text_view image_view recline_view datastore datapusher
|
||||||
|
|
||||||
|
# Define which views should be created by default
|
||||||
|
# (plugins must be loaded in ckan.plugins)
|
||||||
|
ckan.views.default_views = image_view text_view recline_view
|
||||||
|
|
||||||
|
# Customize which text formats the text_view plugin will show
|
||||||
|
#ckan.preview.json_formats = json
|
||||||
|
#ckan.preview.xml_formats = xml rdf rdf+xml owl+xml atom rss
|
||||||
|
#ckan.preview.text_formats = text plain text/plain
|
||||||
|
|
||||||
|
# Customize which image formats the image_view plugin will show
|
||||||
|
#ckan.preview.image_formats = png jpeg jpg gif
|
||||||
|
|
||||||
|
## Front-End Settings
|
||||||
|
ckan.site_title = CKAN
|
||||||
|
ckan.site_logo = /base/images/ckan-logo.png
|
||||||
|
ckan.site_description =
|
||||||
|
ckan.favicon = /base/images/ckan.ico
|
||||||
|
ckan.gravatar_default = identicon
|
||||||
|
ckan.preview.direct = png jpg gif
|
||||||
|
ckan.preview.loadable = html htm rdf+xml owl+xml xml n3 n-triples turtle plain atom csv tsv rss txt json
|
||||||
|
ckan.display_timezone = server
|
||||||
|
|
||||||
|
# package_hide_extras = for_search_index_only
|
||||||
|
#package_edit_return_url = http://another.frontend/dataset/<NAME>
|
||||||
|
#package_new_return_url = http://another.frontend/dataset/<NAME>
|
||||||
|
#ckan.recaptcha.version = 1
|
||||||
|
#ckan.recaptcha.publickey =
|
||||||
|
#ckan.recaptcha.privatekey =
|
||||||
|
#licenses_group_url = http://licenses.opendefinition.org/licenses/groups/ckan.json
|
||||||
|
# ckan.template_footer_end =
|
||||||
|
|
||||||
|
|
||||||
|
## Internationalisation Settings
|
||||||
|
ckan.locale_default = cs_CZ
|
||||||
|
ckan.locale_order = en pt_BR ja it cs_CZ ca es fr el sv sr sr@latin no sk fi ru de pl nl bg ko_KR hu sa sl lv
|
||||||
|
ckan.locales_offered = cs_CZ en
|
||||||
|
ckan.locales_filtered_out = en_GB
|
||||||
|
|
||||||
|
## Feeds Settings
|
||||||
|
|
||||||
|
ckan.feeds.authority_name =
|
||||||
|
ckan.feeds.date =
|
||||||
|
ckan.feeds.author_name =
|
||||||
|
ckan.feeds.author_link =
|
||||||
|
|
||||||
|
## Storage Settings
|
||||||
|
|
||||||
|
ckan.storage_path = /var/lib/ckan
|
||||||
|
ckan.max_resource_size = 10
|
||||||
|
ckan.max_image_size = 2
|
||||||
|
|
||||||
|
## Datapusher settings
|
||||||
|
|
||||||
|
# Make sure you have set up the DataStore
|
||||||
|
|
||||||
|
ckan.datapusher.formats = csv xls xlsx tsv application/csv application/vnd.ms-excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
||||||
|
ckan.datapusher.url = http://127.0.0.1
|
||||||
|
#ckan.datapusher.assume_task_stale_after = 3600
|
||||||
|
|
||||||
|
# Resource Proxy settings
|
||||||
|
# Preview size limit, default: 1MB
|
||||||
|
ckan.resource_proxy.max_file_size = 1048576
|
||||||
|
# Size of chunks to read/write.
|
||||||
|
ckan.resource_proxy.chunk_size = 4096
|
||||||
|
|
||||||
|
## Activity Streams Settings
|
||||||
|
|
||||||
|
#ckan.activity_streams_enabled = true
|
||||||
|
#ckan.activity_list_limit = 31
|
||||||
|
#ckan.activity_streams_email_notifications = true
|
||||||
|
#ckan.email_notifications_since = 2 days
|
||||||
|
ckan.hide_activity_from_users = %(ckan.site_id)s
|
||||||
|
|
||||||
|
|
||||||
|
## Email settings
|
||||||
|
|
||||||
|
#email_to = errors@example.com
|
||||||
|
#error_email_from = ckan-errors@example.com
|
||||||
|
smtp.server = localhost
|
||||||
|
smtp.starttls = False
|
||||||
|
#smtp.user = username@example.com
|
||||||
|
#smtp.password = your_password
|
||||||
|
smtp.mail_from = ckan@spotter.ngo
|
||||||
|
|
||||||
|
|
||||||
|
## Logging configuration
|
||||||
|
[loggers]
|
||||||
|
keys = root, ckan, ckanext
|
||||||
|
|
||||||
|
[handlers]
|
||||||
|
keys = console
|
||||||
|
|
||||||
|
[formatters]
|
||||||
|
keys = generic
|
||||||
|
|
||||||
|
[logger_root]
|
||||||
|
level = WARNING
|
||||||
|
handlers = console
|
||||||
|
|
||||||
|
[logger_ckan]
|
||||||
|
level = INFO
|
||||||
|
handlers = console
|
||||||
|
qualname = ckan
|
||||||
|
propagate = 0
|
||||||
|
|
||||||
|
[logger_ckanext]
|
||||||
|
level = DEBUG
|
||||||
|
handlers = console
|
||||||
|
qualname = ckanext
|
||||||
|
propagate = 0
|
||||||
|
|
||||||
|
[handler_console]
|
||||||
|
class = StreamHandler
|
||||||
|
args = (sys.stderr,)
|
||||||
|
level = NOTSET
|
||||||
|
formatter = generic
|
||||||
|
|
||||||
|
[formatter_generic]
|
||||||
|
format = %(asctime)s %(levelname)-5.5s [%(name)s] %(message)s
|
13
ckan/etc/ckan/datapusher.wsgi
Normal file
13
ckan/etc/ckan/datapusher.wsgi
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
activate_this = os.path.join('/srv/ckan/bin/activate_this.py')
|
||||||
|
execfile(activate_this, dict(__file__=activate_this))
|
||||||
|
|
||||||
|
import ckanserviceprovider.web as web
|
||||||
|
import datapusher.jobs as jobs
|
||||||
|
|
||||||
|
os.environ['JOB_CONFIG'] = '/etc/ckan/datapusher_settings.py'
|
||||||
|
web.init()
|
||||||
|
application = web.app
|
20
ckan/etc/ckan/datapusher_settings.py
Normal file
20
ckan/etc/ckan/datapusher_settings.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
DEBUG = False
|
||||||
|
TESTING = False
|
||||||
|
SSL_VERIFY = False
|
||||||
|
SECRET_KEY = '${CKAN_DSJOB_SECRET}'
|
||||||
|
USERNAME = '${CKAN_DSJOB_USER}'
|
||||||
|
PASSWORD = '${CKAN_DSJOB_PWD}'
|
||||||
|
NAME = 'datapusher'
|
||||||
|
|
||||||
|
SQLALCHEMY_DATABASE_URI = 'sqlite:////var/lib/ckan/datapusher-jobs.db'
|
||||||
|
|
||||||
|
HOST = '0.0.0.0'
|
||||||
|
PORT = 8003
|
||||||
|
|
||||||
|
FROM_EMAIL = 'ckan@spotter.ngo'
|
||||||
|
#ADMINS = ['yourname@example.com'] # where to send emails
|
||||||
|
|
||||||
|
#LOG_FILE = '/tmp/ckan_service.log'
|
||||||
|
STDERR = True
|
1
ckan/etc/cron.d/ckan
Normal file
1
ckan/etc/cron.d/ckan
Normal file
@ -0,0 +1 @@
|
|||||||
|
10 * * * * ckan /srv/ckan/cron-pageviews.sh >/dev/null
|
8
ckan/etc/nginx/apps-available/ckan
Normal file
8
ckan/etc/nginx/apps-available/ckan
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
location /ckan {
|
||||||
|
uwsgi_pass unix:///run/uwsgi/app/ckan/socket;
|
||||||
|
include uwsgi_params;
|
||||||
|
uwsgi_param SCRIPT_NAME /ckan;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/ckan.access.log;
|
||||||
|
error_log /var/log/nginx/ckan.error.log;
|
||||||
|
}
|
14
ckan/etc/nginx/sites-available/ckan-datapusher
Normal file
14
ckan/etc/nginx/sites-available/ckan-datapusher
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
server {
|
||||||
|
listen 8003 ssl http2;
|
||||||
|
listen [::]:8003 ssl http2;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/ckan.access.log;
|
||||||
|
error_log /var/log/nginx/ckan.error.log;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
uwsgi_pass unix:///run/uwsgi/app/ckan-datapusher/socket;
|
||||||
|
include uwsgi_params;
|
||||||
|
uwsgi_param SCRIPT_NAME '';
|
||||||
|
uwsgi_param UWSGI_SCHEME $scheme;
|
||||||
|
}
|
||||||
|
}
|
8
ckan/etc/uwsgi/apps-available/ckan-datapusher.ini
Normal file
8
ckan/etc/uwsgi/apps-available/ckan-datapusher.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[uwsgi]
|
||||||
|
uid = ckan
|
||||||
|
gid = ckan
|
||||||
|
chown-socket = www-data:www-data
|
||||||
|
chdir = /srv/ckan
|
||||||
|
exec-asap = /srv/ckan/update-ip.sh
|
||||||
|
disable-logging = true
|
||||||
|
file = /etc/ckan/datapusher.wsgi
|
10
ckan/etc/uwsgi/apps-available/ckan.ini
Normal file
10
ckan/etc/uwsgi/apps-available/ckan.ini
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[uwsgi]
|
||||||
|
uid = ckan
|
||||||
|
gid = ckan
|
||||||
|
chown-socket = www-data:www-data
|
||||||
|
chdir = /srv/ckan
|
||||||
|
home = /srv/ckan
|
||||||
|
exec-asap = /srv/ckan/update-ip.sh
|
||||||
|
route-run = fixpathinfo:
|
||||||
|
disable-logging = true
|
||||||
|
ini-paste = /etc/ckan/ckan.ini
|
11
ckan/lib/systemd/system/solr.service
Normal file
11
ckan/lib/systemd/system/solr.service
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Apache Solr
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/opt/solr/bin/solr start -f -p 8983 -s /var/lib/solr
|
||||||
|
ExecStop=/opt/solr/bin/solr stop -p 8983
|
||||||
|
User=solr
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
6
ckan/srv/ckan/cron-pageviews.sh
Executable file
6
ckan/srv/ckan/cron-pageviews.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /srv/ckan/bin/activate
|
||||||
|
paster --plugin=ckan tracking update -c /etc/ckan/ckan.ini && \
|
||||||
|
paster --plugin=ckan search-index rebuild -r -c /etc/ckan/ckan.ini
|
||||||
|
deactivate
|
5
ckan/srv/ckan/update-ip.sh
Executable file
5
ckan/srv/ckan/update-ip.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
IP=$(ip route get 1 | awk '{print $NF;exit}')
|
||||||
|
sed -i "s|^ckan\.site_url.*|ckan.site_url = https://${IP}|" /etc/ckan/ckan.ini
|
||||||
|
sed -i "s|^ckan\.datapusher\.url.*|ckan.datapusher.url = https://${IP}:8003|" /etc/ckan/ckan.ini
|
1
ckan/tmp/ckan-adminpwd.sql
Normal file
1
ckan/tmp/ckan-adminpwd.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
INSERT INTO public.user VALUES ('${CKAN_ADMIN_UUID}', '${CKAN_ADMIN_USER}', '${CKAN_ADMIN_APIKEY}', NOW(), NULL, '${CKAN_ADMIN_HASH}', NULL, '${CKAN_ADMIN_EMAIL}', NULL, TRUE, FALSE, 'active');
|
21
ckan/tmp/ckan-createdb.sql
Normal file
21
ckan/tmp/ckan-createdb.sql
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
CREATE ROLE ckan NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD '${CKAN_PWD}';
|
||||||
|
CREATE ROLE ckan_datastore NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD '${CKAN_DS_PWD}';
|
||||||
|
|
||||||
|
CREATE DATABASE ckan;
|
||||||
|
REVOKE ALL ON DATABASE ckan FROM public;
|
||||||
|
ALTER DATABASE ckan OWNER TO ckan;
|
||||||
|
|
||||||
|
CREATE DATABASE ckan_datastore;
|
||||||
|
REVOKE ALL ON DATABASE ckan_datastore FROM public;
|
||||||
|
GRANT CONNECT, CREATE, TEMPORARY ON DATABASE ckan_datastore TO ckan;
|
||||||
|
ALTER DATABASE ckan_datastore OWNER TO ckan_datastore;
|
||||||
|
|
||||||
|
\c ckan
|
||||||
|
CREATE TEXT SEARCH DICTIONARY cspell (template=ispell, dictfile = czech, afffile=czech, stopwords=czech);
|
||||||
|
CREATE TEXT SEARCH CONFIGURATION czech (copy=english);
|
||||||
|
ALTER TEXT SEARCH CONFIGURATION czech ALTER MAPPING FOR word, asciiword WITH cspell, simple;
|
||||||
|
|
||||||
|
\c ckan_datastore
|
||||||
|
CREATE TEXT SEARCH DICTIONARY cspell (template=ispell, dictfile = czech, afffile=czech, stopwords=czech);
|
||||||
|
CREATE TEXT SEARCH CONFIGURATION czech (copy=english);
|
||||||
|
ALTER TEXT SEARCH CONFIGURATION czech ALTER MAPPING FOR word, asciiword WITH cspell, simple;
|
1360
ckan/var/lib/solr/ckan/conf/solrconfig.xml
Normal file
1360
ckan/var/lib/solr/ckan/conf/solrconfig.xml
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user