diff --git a/doc/admin/installation/dev_version.rst b/doc/admin/installation/dev_version.rst new file mode 100644 index 000000000..e0fa3bc75 --- /dev/null +++ b/doc/admin/installation/dev_version.rst @@ -0,0 +1,37 @@ +.. highlight:: none + +Installing a development version +================================ + +If you want to use a feature of pretix that is not yet contained in the last monthly release, you can also +install a development version with pretix. + +.. warning:: When in production, we strongly recommend only installing released versions. Development versions might + be broken, incompatible to plugins, or in rare cases incompatible to upgrade later on. + + +Manual installation +------------------- + +You can use ``pip`` to update pretix directly to the development branch. Then, upgrade as usual:: + + $ source /var/pretix/venv/bin/activate + (venv)$ pip3 install -U "git+https://github.com/pretix/pretix.git#egg=pretix&subdirectory=src" + (venv)$ python -m pretix migrate + (venv)$ python -m pretix rebuild + (venv)$ python -m pretix updatestyles + # systemctl restart pretix-web pretix-worker + +Docker installation +------------------- + +To use the latest development version with Docker, first pull it from Docker Hub:: + + $ docker pull pretix/standalone:latest + + +Then change your ``/etc/systemd/system/pretix.service`` file to use the ``:latest`` tag instead of ``:stable`` as well +and upgrade as usual:: + + $ systemctl restart pretix.service + $ docker exec -it pretix.service pretix upgrade diff --git a/doc/admin/installation/enterprise.rst b/doc/admin/installation/enterprise.rst new file mode 100644 index 000000000..2edd76678 --- /dev/null +++ b/doc/admin/installation/enterprise.rst @@ -0,0 +1,84 @@ +.. highlight:: none + +Installing pretix Enterprise plugins +==================================== + +If you want to use a feature of pretix that is part of our commercial offering pretix Enterprise, you need to follow +some extra steps. Installation works similar to normal pretix plugins, but involves a few extra steps. + +Buying the license +------------------ + +To obtain a license, please get in touch at sales@pretix.eu. Please let us know how many tickets you roughly intend +to sell per year and how many servers you want to use the plugin on. We recommend having a look at our `price list`_ +first. + + +Manual installation +------------------- + +First, generate an SSH key for the system user that you install pretix as. In our tutorial, that would be the user +``pretix``. Choose an empty passphrase:: + + # su pretix + $ ssh-keygen + Generating public/private rsa key pair. + Enter file in which to save the key (/var/pretix/.ssh/id_rsa): + Enter passphrase (empty for no passphrase): + Enter same passphrase again: + Your identification has been saved in /var/pretix/.ssh/id_rsa. + Your public key has been saved in /var/pretix/.ssh/id_rsa.pub. + +Next, send the content of the *public* key to your sales representative at pretix:: + + $ cat /var/pretix/.ssh/id_rsa.pub + ssh-rsa AAAAB3N...744HZawHlD pretix@foo + +After we configured your key in our system, you can install the plugin directly using ``pip`` from the URL we told +you, for example:: + + $ source /var/pretix/venv/bin/activate + (venv)$ pip3 install -U "git+ssh://git@code.rami.io:10022/pretix/pretix-slack.git@stable#egg=pretix-slack" + (venv)$ python -m pretix migrate + (venv)$ python -m pretix rebuild + # systemctl restart pretix-web pretix-worker + +Docker installation +------------------- + +To install a plugin, you need to build your own docker image. To do so, create a new directory to work in. As a first +step, generate a new SSH key in that directory to use for authentication with us:: + + $ cd /home/me/mypretixdocker + $ ssh-keygen -N "" -f id_pretix_enterprise + +Next, send the content of the *public* key to your sales representative at pretix:: + + $ cat id_pretix_enterprise.pub + ssh-rsa AAAAB3N...744HZawHlD pretix@foo + +After we configured your key in our system, you can add a ``Dockerfile`` in your directory that includes the newly +generated key and installs the plugin from the URL we told you:: + + FROM pretix/standalone:stable + USER root + COPY id_pretix_enterprise /root/.ssh/id_rsa + COPY id_pretix_enterprise.pub /root/.ssh/id_rsa.pub + RUN chmod -R 0600 /root/.ssh && \ + mkdir -p /etc/ssh && \ + ssh-keyscan -t rsa -p 10022 code.rami.io >> /root/.ssh/known_hosts && \ + echo StrictHostKeyChecking=no >> /root/.ssh/config && \ + pip3 install -Ue "git+ssh://git@code.rami.io:10022/pretix/pretix-slack.git@stable#egg=pretix-slack" && \ + cd /pretix/src && \ + sudo -u pretixuser make production + USER pretixuser + +Then, build the image for docker:: + + $ docker build -t mypretix + +You can now use that image ``mypretix`` instead of ``pretix/standalone:stable`` in your ``/etc/systemd/system/pretix.service`` +service file. Be sure to re-build your custom image after you pulled ``pretix/standalone`` if you want to perform an +update to a new version of pretix. + +.. _price list: https://pretix.eu/about/en/pricing diff --git a/doc/admin/installation/index.rst b/doc/admin/installation/index.rst index 17a9d34d1..9442fc638 100644 --- a/doc/admin/installation/index.rst +++ b/doc/admin/installation/index.rst @@ -10,3 +10,5 @@ for your needs. general docker_smallscale manual_smallscale + dev_version + enterprise