.. include:: /_substitutions.rst ============================ Installing CKAN from package ============================ This section describes how to install CKAN from package. This is the quickest and easiest way to install CKAN, but it requires **Ubuntu 20.04 or 22.04 64-bit**. If you're not using any of these Ubuntu versions, or if you're installing CKAN for development, you should follow :doc:`install-from-source` instead. At the end of the installation process you will end up with two running web applications, CKAN itself and the DataPusher, a separate service for automatically importing data to CKAN's :doc:`/maintaining/datastore`. Additionally, there will be a process running the worker for running :doc:`/maintaining/background-tasks`. All these processes will be managed by `Supervisor `_. For Python 3 installations, the minimum Python version required is 3.7. Host ports requirements: +------------+------------+-----------+ | Service | Port | Used for | +============+============+===========+ | NGINX | 80 | Proxy | +------------+------------+-----------+ | uWSGI | 8080 | Web Server| +------------+------------+-----------+ | uWSGI | 8800 | DataPusher| +------------+------------+-----------+ | Solr | 8983 | Search | +------------+------------+-----------+ | PostgreSQL | 5432 | Database | +------------+------------+-----------+ | Redis | 6379 | Search | +------------+------------+-----------+ .. _run-package-installer: --------------------------- 1. Install the CKAN package --------------------------- On your Ubuntu system, open a terminal and run these commands to install CKAN: #. Update Ubuntu's package index:: sudo apt update #. Install the Ubuntu packages that CKAN requires (and 'git', to enable you to install CKAN extensions):: sudo apt install -y libpq5 redis-server nginx supervisor #. Download the CKAN package: - On Ubuntu 20.04: .. parsed-literal:: wget \https://packaging.ckan.org/|current_package_name_focal| - On Ubuntu 22.04: .. parsed-literal:: wget \https://packaging.ckan.org/|current_package_name_jammy| #. Install the CKAN package: - On Ubuntu 20.04: .. parsed-literal:: sudo dpkg -i |current_package_name_focal| - On Ubuntu 22.04: .. parsed-literal:: sudo dpkg -i |current_package_name_jammy| ----------------------------------- 2. Install and configure PostgreSQL ----------------------------------- .. tip:: You can install |postgres| and CKAN on different servers. Just change the :ref:`sqlalchemy.url` setting in your |ckan.ini| file to reference your |postgres| server. .. note:: The commands mentioned below are tested in Ubuntu .. include:: postgres.rst Edit the :ref:`sqlalchemy.url` option in your :ref:`config_file` (|ckan.ini|) file and set the correct password, database and database user. ----------------------------- 3. Install and configure Solr ----------------------------- .. tip:: You can install |solr| and CKAN on different servers. Just change the :ref:`solr_url` setting in your |ckan.ini| |production.ini| file to reference your |solr| server. .. include:: solr.rst ------------------------------ 4. Set up a writable directory ------------------------------ CKAN needs a directory where it can write certain files, regardless of whether you are using the :doc:`/maintaining/filestore` or not (if you do want to enable file uploads, set the :ref:`ckan.storage_path` configuration option in the next section). 1. Create the directory where CKAN will be able to write files: .. parsed-literal:: sudo mkdir -p |storage_path| 2. Set the permissions of this directory. For example if you're running CKAN with Nginx, then the Nginx's user (``www-data`` on Ubuntu) must have read, write and execute permissions on it: .. parsed-literal:: sudo chown www-data |storage_path| sudo chmod u+rwx |storage_path| ------------------------------------------------------- 5. Update the configuration and initialize the database ------------------------------------------------------- #. Edit the :ref:`config_file` (|ckan.ini|) to set up the following options: site_id Each CKAN site should have a unique ``site_id``, for example:: ckan.site_id = default site_url Provide the site's URL. For example:: ckan.site_url = http://demo.ckan.org #. Initialize your CKAN database by running this command in a terminal:: sudo ckan db init #. Optionally, setup the DataStore and DataPusher by following the instructions in :doc:`/maintaining/datastore`. #. Also optionally, you can enable file uploads by following the instructions in :doc:`/maintaining/filestore`. ----------------------------------------- 6. Start the Web Server and restart Nginx ----------------------------------------- Reload the Supervisor daemon so the new processes are picked up:: sudo supervisorctl reload After a few seconds run the following command to check the status of the processes:: sudo supervisorctl status You should see three processes running without errors:: ckan-datapusher:ckan-datapusher-00 RUNNING pid 1963, uptime 0:00:12 ckan-uwsgi:ckan-uwsgi-00 RUNNING pid 1964, uptime 0:00:12 ckan-worker:ckan-worker-00 RUNNING pid 1965, uptime 0:00:12 If some of the processes reports an error, make sure you've run all the previous steps and check the logs located in ``/var/log/ckan`` for more details. Restart Nginx by running this command:: sudo service nginx restart --------------- 7. You're done! --------------- Open http://localhost in your web browser. You should see the CKAN front page, which will look something like this: .. image :: /images/9.png :width: 807px | You can now move on to :doc:`/maintaining/getting-started` to begin using and customizing your CKAN site. .. note:: The default authorization settings on a new install are deliberately restrictive. Regular users won't be able to create datasets or organizations. You should check the :doc:`/maintaining/authorization` documentation, configure CKAN accordingly and grant other users the relevant permissions using the :ref:`sysadmin account `. .. note:: There may be a ``PermissionError: [Errno 13] Permission denied:`` message when restarting supervisor or accessing CKAN via a browser for the first time. This happens when a different user is used to execute the web server process than the user who installed CKAN and the support software. A workaround would be to open up the permissions on the ``/usr/lib/ckan/default/src/ckan/ckan/public/base/i18n/`` directory so that this user could write the .js files into it. Accessing CKAN will generate these files for a new install, or you could run ``ckan -c /etc/ckan/default/ckan.ini translation js`` to explicitly generate them.