No description https://www.EdgeBSD.org/
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Pierre Pronchery 8b84253e90
Some checks failed
EdgeBSD C CI / build (push) Has been cancelled
README.md: reflect the default version for PHP
2026-08-03 04:45:58 +02:00
.github/workflows Create edgebsd-c-ci_ubuntu-latest.yml 2022-09-15 15:23:52 +02:00
doc/eurobsdcon2022 doc: import presentation at EuroBSDcon 2022 2022-09-20 10:40:25 +02:00
repositories pkgsrc: update to the latest pkgsrc-2026Q2 2026-07-21 22:26:09 +02:00
.gitmodules Only allow the administrator to use phpLDAPadmin 2022-04-16 01:30:21 +02:00
COPYING Import licensing information 2022-04-13 20:06:45 +02:00
devsetup devsetup: update pg_hba.conf from upstream 2026-05-18 01:02:31 +02:00
README.md README.md: reflect the default version for PHP 2026-08-03 04:45:58 +02:00

Development environment

Getting started

The devsetup script contains everything required.

Bootstrapping

Bootstrapping and managing the environment can be done entirely with devsetup. Everything is built from source, and the resulting environment should be consistent regardless of the host platform, including when deploying in staging or production.

This is thanks to pkgsrc (https://pkgsrc.org, https://www.netbsd.org/docs/pkgsrc/), the packaging system for NetBSD, which is portable and should work equally well on all *BSDs, Linux, Windows, Illumos, and more.

Basically, to get started, simply run:

$ ./devsetup init

This should provide a working environment, after a fair amount of compilation work.

Environment

For convenience, it is also possible to run:

$ $(./devsetup environment)

This should:

  • Prefix $MANPATH with ~/opt/pkgsrc-2025Q1/man if necessary
  • Prefix $PATH with ~/opt/pkgsrc-2025Q1/sbin:~/opt/pkgsrc-2025Q1/bin if necessary
  • Alias devsetup within the environment

Usage

The usage screen is as follows:

$ ./devsetup -?
devsetup: -?: Command not supported
Usage: devsetup clean|init|environment [-qv]
       devsetup install|configure|update|uninstall [-qv][package...]
       devsetup start|stop|status|restart [-qv][service...]

devsetup clean [-qv]
  Removes the temporary files resulting from compilation.

devsetup init [-qv]
  Clones the package repositories and installs the default packages.

devsetup environment [-qv]
  Outputs variables needing to be updated to help work with devsetup.

devsetup install|configure|update|uninstall [-qv][package...]
  Installs, configures, updates, or uninstalls specific packages, or the list of
  default packages.

devsetup start|stop|status|restart [-qv][service...]
  Starts, stops, checks, or restarts specific services, or the list of default
  services.

Examples

To install additional packages:

$ devsetup install misc/figlet misc/figlet-fonts
devsetup: Installing packages...
devsetup: misc/figlet: Package already installed (figlet-2.2.5nb1)
devsetup: misc/figlet-fonts: Package already installed (figlet-fonts-20021023nb1)
devsetup: Packages installed
devsetup: Configuring the packages...
devsetup: Packages configured

To monitor the services:

$ devsetup status -q
dovecot is running as pid 41645.
nginx is running as pid 45946.
pgsql is running as pid 41667 41669 41670 41671 41672 41673 41674.
php_fpm83 is running as pid 45975.
slapd is running as pid 41763.

To restart specific services:

$ devsetup restart nginx php_fpm83
devsetup: nginx: Restarting service...
Stopping nginx.
Waiting for PIDS: 41654.
Starting nginx.
devsetup: nginx: service restarted
devsetup: php_fpm83: Restarting service...
Stopping php_fpm83.
Waiting for PIDS: 41681.
Starting php_fpm83.
devsetup: php_fpm83: service restarted

Assumptions

  1. devsetup installs the compiled environment in ~/opt/pkgsrc-2025Q1

Services

The services running by default are:

Name Software Package Address Comments
dovecot Dovecot mail/dovecot2 127.0.0.1:1143 webmail
nginx Nginx www/nginx 127.0.0.1:8080 default page
pgsql PostgreSQL databases/postgresql16 127.0.0.1:5432 administration
php_fpm83 PHP-FPM www/php-fpm 127.0.0.1:9000 Fast CGI
slapd OpenLDAP databases/openldap 127.0.0.1:3389 administration

Every service can be configured to run on a different address; this can be useful when using a VM for devsetup for instance.

Configuration

A lot of the behaviour can otherwise be configured locally in ~/.config/devsetup.conf.