Guidelines:DebianPackages: Difference between revisions
Created page with "= Debian Packages = As of version 6.0, Eden provides packaged releases for installation, setup and server administration. Packages for Debian (*.deb) are currently provided as assets attached to the respective GitHub release: * https://github.com/sahana/eden/releases Using packaged releases is the recommended setup method for production servers. == Prerequisites == Before starting the installation, you should have a server machine (virtual or bare metal), installed..." |
|||
| (9 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
== Prerequisites == | == Prerequisites == | ||
Before starting the installation, you | Before starting the installation, you must have a server machine (virtual or bare metal) ready, installed with a suitable '''Debian/Linux''' distribution. As a rule, Eden supports the last two Debian releases ([https://wiki.debian.org/DebianStable stable] and [https://wiki.debian.org/DebianOldStable oldstable]). | ||
'''''Note''': Occasionally, support for the current stable can be delayed while we are fixing incompatibilities - but the oldstable should always be available.'' | |||
Additionally, you will need a DNS A-record pointing to | The server must have access to corresponding Debian repositories in order to install dependencies, either locally or via internet. | ||
You must be able to access the server via '''SSH''' (alternatively physical console), and to become the <code>root</code> user. | |||
Additionally, you will need a '''DNS A-record''' for the intended '''server URL''' pointing to the server's IP address, which you can obtain from your domain services provider. Make sure the server is accessible from the network under that server URL via both HTTP and HTTPs. | |||
== Installation == | == Installation == | ||
| Line 19: | Line 23: | ||
Login to the server via SSH, and make yourself root with <code>sudo su -</code>. | Login to the server via SSH, and make yourself root with <code>sudo su -</code>. | ||
Download the release package matching your Debian version: | Download the release package matching your Debian version, e.g. for Eden-6.0 on Debian-12 Bookworm: | ||
cd /tmp | cd /tmp | ||
| Line 29: | Line 33: | ||
apt-get install -f sahana-eden-debian12_6.0-1_all.deb | apt-get install -f sahana-eden-debian12_6.0-1_all.deb | ||
This will install all necessary dependencies, including PostgreSQL with PostGIS, the web2py framework, the nginx web server and uWSGI, and finally Eden itself. | This will install all necessary dependencies, including '''PostgreSQL''' with '''PostGIS''', the '''web2py''' framework, the '''nginx''' web server and '''uWSGI''', and finally '''Eden''' itself. | ||
The package also deploys the <code>[[Guidelines:Edenctl|edenctl]]</code> tool to configure and manage the server. | The package also deploys the <code>[[Guidelines:Edenctl|edenctl]]</code> tool to configure and manage the server. | ||
== Configuration == | == Configuration == | ||
If you want to use a custom configuration '''template''', add a symbolic link for it in the <code>/home/web2py/applications/eden/modules/templates</code> directory. | |||
Use <code>[[Guidelines:Edenctl|edenctl]]</code> to configure the Eden instance on your server: | Use <code>[[Guidelines:Edenctl|edenctl]]</code> to configure the Eden instance on your server: | ||
| Line 43: | Line 49: | ||
'''Tip''': if your server URL is ''eden.example.com'', then the hostname would be ''eden'', and the domain ''example.com'' | '''Tip''': if your server URL is ''eden.example.com'', then the hostname would be ''eden'', and the domain ''example.com'' | ||
Edenctl will configure the nginx web server and set up a uWSGI daemon to connect it to web2py/Eden. It will also set up and initialize the database, and pre-populate it with some basic data from the configuration template you selected. | Edenctl will configure the '''nginx''' web server and set up a '''uWSGI''' daemon to connect it to web2py/Eden. It will also set up and initialize the database, and '''pre-populate''' it with some basic data from the configuration template you selected. | ||
It will also configure SSL (HTTPs) with [https://certbot.eff.org/pages/about Certbot] to manage the server certificate and key. | |||
Once this is done, you can start your Eden instance with | Once this is done, you can start your Eden instance with | ||
edenctl start | edenctl start | ||
Latest revision as of 11:25, 25 November 2025
Debian Packages
As of version 6.0, Eden provides packaged releases for installation, setup and server administration. Packages for Debian (*.deb) are currently provided as assets attached to the respective GitHub release:
Using packaged releases is the recommended setup method for production servers.
Prerequisites
Before starting the installation, you must have a server machine (virtual or bare metal) ready, installed with a suitable Debian/Linux distribution. As a rule, Eden supports the last two Debian releases (stable and oldstable).
Note: Occasionally, support for the current stable can be delayed while we are fixing incompatibilities - but the oldstable should always be available.
The server must have access to corresponding Debian repositories in order to install dependencies, either locally or via internet.
You must be able to access the server via SSH (alternatively physical console), and to become the root user.
Additionally, you will need a DNS A-record for the intended server URL pointing to the server's IP address, which you can obtain from your domain services provider. Make sure the server is accessible from the network under that server URL via both HTTP and HTTPs.
Installation
Login to the server via SSH, and make yourself root with sudo su -.
Download the release package matching your Debian version, e.g. for Eden-6.0 on Debian-12 Bookworm:
cd /tmp wget https://github.com/sahana/eden/releases/download/6.0/sahana-eden-debian12_6.0-1_all.deb
Install the package:
apt-get update apt-get install -f sahana-eden-debian12_6.0-1_all.deb
This will install all necessary dependencies, including PostgreSQL with PostGIS, the web2py framework, the nginx web server and uWSGI, and finally Eden itself.
The package also deploys the edenctl tool to configure and manage the server.
Configuration
If you want to use a custom configuration template, add a symbolic link for it in the /home/web2py/applications/eden/modules/templates directory.
Use edenctl to configure the Eden instance on your server:
edenctl setup
Enter your server details as you are prompted for them.
Tip: if your server URL is eden.example.com, then the hostname would be eden, and the domain example.com
Edenctl will configure the nginx web server and set up a uWSGI daemon to connect it to web2py/Eden. It will also set up and initialize the database, and pre-populate it with some basic data from the configuration template you selected.
It will also configure SSL (HTTPs) with Certbot to manage the server certificate and key.
Once this is done, you can start your Eden instance with
edenctl start