summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/Makefile1
-rw-r--r--net/traefik2/Makefile45
-rw-r--r--net/traefik2/distinfo3
-rw-r--r--net/traefik2/files/traefik.in53
-rw-r--r--net/traefik2/pkg-descr6
-rw-r--r--net/traefik2/pkg-message21
6 files changed, 129 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index a764c45785cb..495ac330eef9 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1469,6 +1469,7 @@
SUBDIR += toonel
SUBDIR += torsocks
SUBDIR += traefik
+ SUBDIR += traefik2
SUBDIR += traff
SUBDIR += trafshow
SUBDIR += trafshow3
diff --git a/net/traefik2/Makefile b/net/traefik2/Makefile
new file mode 100644
index 000000000000..bbf4f11ade22
--- /dev/null
+++ b/net/traefik2/Makefile
@@ -0,0 +1,45 @@
+# $FreeBSD$
+
+PORTNAME= traefik2
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.1.8
+DISTVERSIONSUFFIX= -vendor
+CATEGORIES= net
+
+MAINTAINER= freebsd@funzi.org
+COMMENT= High availability reverse proxy and load balancer
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+USES= go:modules
+
+USE_GITHUB= yes
+GH_ACCOUNT= Funzinator
+GH_PROJECT= traefik
+GH_SUBDIR= src/github.com/containous/traefik
+
+USE_RC_SUBR= traefik
+
+GO_BUILDFLAGS= -ldflags "-s -w \
+ -X github.com/containous/traefik/version.Version=${DISTVERSION} \
+ -X github.com/containous/traefik/version.BuildDate=`date -u '+%Y-%m-%d_%I:%M:%S%p'`"
+GO_TARGET= ./cmd/traefik
+CGO_ENABLED= 0
+
+USERS= traefik
+GROUPS= traefik
+
+PLIST_FILES= bin/traefik \
+ "@sample etc/traefik.toml.sample"
+
+post-patch:
+ # Install a sample configuration file which works by default
+ # without manual tweaking
+ ${REINPLACE_CMD} -e 's|:80|:8088|' -e 's|:443|:8443|' \
+ -e 's|\[docker|# \[docker|' ${WRKSRC}/traefik.sample.toml
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/traefik.sample.toml ${STAGEDIR}${PREFIX}/etc/traefik.toml.sample
+
+.include <bsd.port.mk>
diff --git a/net/traefik2/distinfo b/net/traefik2/distinfo
new file mode 100644
index 000000000000..363a21a583e0
--- /dev/null
+++ b/net/traefik2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1584705603
+SHA256 (Funzinator-traefik-v2.1.8-vendor_GH0.tar.gz) = b18397fbec5fd1948a3ecf3b111b25ca2712683298792ed2aebd4cfbfe5c21ab
+SIZE (Funzinator-traefik-v2.1.8-vendor_GH0.tar.gz) = 19161792
diff --git a/net/traefik2/files/traefik.in b/net/traefik2/files/traefik.in
new file mode 100644
index 000000000000..c27eb6a04d4d
--- /dev/null
+++ b/net/traefik2/files/traefik.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: traefik
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# traefik_enable (bool): Set to NO by default.
+# Set it to YES to enable traefik.
+# traefik_user (user): Set user to run traefik.
+# Default is "traefik".
+# traefik_group (group): Set group to run traefik.
+# Default is "traefik".
+# traefik_conf (path): Path to traefik configuration file.
+# Default is %%PREFIX%%/etc/traefik.toml
+# traefik_env (vars): Set environment variables used with traefik
+# Default is "".
+# These are necessary for ACME (Let's Encrypt)
+# configuration, see
+# https://docs.traefik.io/configuration/acme/
+
+. /etc/rc.subr
+
+name=traefik
+rcvar=traefik_enable
+
+load_rc_config $name
+
+: ${traefik_enable:="NO"}
+: ${traefik_user:="traefik"}
+: ${traefik_group:="traefik"}
+: ${traefik_conf:="%%PREFIX%%/etc/traefik.toml"}
+: ${traefik_env:=""}
+
+pidfile=/var/run/traefik.pid
+procname="%%PREFIX%%/bin/traefik"
+command="/usr/sbin/daemon"
+command_args="-f -p ${pidfile} /usr/bin/env ${traefik_env} ${procname} --configFile=${traefik_conf} ${traefik_args}"
+
+start_precmd=traefik_startprecmd
+
+traefik_startprecmd()
+{
+ if [ ! -e ${pidfile} ]; then
+ install -o ${traefik_user} -g ${traefik_group} /dev/null ${pidfile};
+ fi
+}
+
+run_rc_command "$1"
diff --git a/net/traefik2/pkg-descr b/net/traefik2/pkg-descr
new file mode 100644
index 000000000000..5987f7269bfa
--- /dev/null
+++ b/net/traefik2/pkg-descr
@@ -0,0 +1,6 @@
+Traefik (pronounced like traffic) is a modern HTTP reverse proxy and load
+balancer made to deploy microservices with ease. It supports several backends
+(Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS,
+and a lot more) to manage its configuration automatically and dynamically.
+
+WWW: https://traefik.io/
diff --git a/net/traefik2/pkg-message b/net/traefik2/pkg-message
new file mode 100644
index 000000000000..5fb39fbf0f4a
--- /dev/null
+++ b/net/traefik2/pkg-message
@@ -0,0 +1,21 @@
+[
+{ type: install
+ message: <<EOM
+Note that traefik starts as unprivileged user. Thus, it cannot
+bind to privileged ports (by default, ports below 1024) and
+will exit when configured to do so.
+
+If traefik should serve ports in the privileged range, there
+are options to achieve this:
+- Have traffic bind to an unprivileged port and use the
+ packet filter configuration to redirect requests to the
+ desired privileged port to the unprivileged port in
+ traefik's configuration file e.g. the rdr rules in pf(4).
+- The mac_portacl kernel module allows unprivileged processes
+ to bind to privileged ports.
+
+Note: If you are upgrading from traefik 1.x keep in mind that
+the configuration is not compatible.
+EOM
+}
+]