mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-19 10:37:01 +00:00
Merge branch 'feature/brew' into develop
This commit is contained in:
115
etc/homebrew/inbucket.conf
Normal file
115
etc/homebrew/inbucket.conf
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
# inbucket.conf
|
||||||
|
# homebrew inbucket configuration
|
||||||
|
# {{}} values will be replaced during installation
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
# Not used directly, but is typically referenced below in %()s format.
|
||||||
|
default.domain=inbucket.local
|
||||||
|
themes.dir={{HOMEBREW_PREFIX}}/share/inbucket/themes
|
||||||
|
datastore.dir={{HOMEBREW_PREFIX}}/var/inbucket/datastore
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[logging]
|
||||||
|
|
||||||
|
# Options from least to most verbose: ERROR, WARN, INFO, TRACE
|
||||||
|
level=INFO
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[smtp]
|
||||||
|
|
||||||
|
# IPv4 address to listen for SMTP connections on.
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to listen for SMTP connections on.
|
||||||
|
ip4.port=2500
|
||||||
|
|
||||||
|
# used in SMTP greeting
|
||||||
|
domain=%(default.domain)s
|
||||||
|
|
||||||
|
# optional: mail sent to accounts at this domain will not be stored,
|
||||||
|
# for mixed use (content and load testing)
|
||||||
|
domain.nostore=bitbucket.local
|
||||||
|
|
||||||
|
# Maximum number of RCPT TO: addresses we allow from clients, the SMTP
|
||||||
|
# RFC recommends this be at least 100.
|
||||||
|
max.recipients=100
|
||||||
|
|
||||||
|
# How long we allow a network connection to be idle before hanging up on the
|
||||||
|
# client, SMTP RFC recommends at least 5 minutes (300 seconds).
|
||||||
|
max.idle.seconds=300
|
||||||
|
|
||||||
|
# Maximum allowable size of message body in bytes (including attachments)
|
||||||
|
max.message.bytes=2048000
|
||||||
|
|
||||||
|
# Should we place messages into the datastore, or just throw them away
|
||||||
|
# (for load testing): true or false
|
||||||
|
store.messages=true
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[pop3]
|
||||||
|
|
||||||
|
# IPv4 address to listen for POP3 connections on.
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to listen for POP3 connections on.
|
||||||
|
ip4.port=1100
|
||||||
|
|
||||||
|
# used in POP3 greeting
|
||||||
|
domain=%(default.domain)s
|
||||||
|
|
||||||
|
# How long we allow a network connection to be idle before hanging up on the
|
||||||
|
# client, POP3 RFC requires at least 10 minutes (600 seconds).
|
||||||
|
max.idle.seconds=600
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[web]
|
||||||
|
|
||||||
|
# IPv4 address to serve HTTP web interface on
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to serve HTTP web interface on
|
||||||
|
ip4.port=9000
|
||||||
|
|
||||||
|
# Name of web theme to use
|
||||||
|
theme=bootstrap
|
||||||
|
|
||||||
|
# Path to the selected themes template files
|
||||||
|
template.dir=%(themes.dir)s/%(theme)s/templates
|
||||||
|
|
||||||
|
# Should we cache parsed templates (set to false during theme dev)
|
||||||
|
template.cache=true
|
||||||
|
|
||||||
|
# Path to the selected themes public (static) files
|
||||||
|
public.dir=%(themes.dir)s/%(theme)s/public
|
||||||
|
|
||||||
|
# Path to the greeting HTML displayed on front page, can be moved out of
|
||||||
|
# installation dir for customization
|
||||||
|
greeting.file=%(themes.dir)s/greeting.html
|
||||||
|
|
||||||
|
# Key used to sign session cookie data so that it cannot be tampered with.
|
||||||
|
# If this is left unset, Inbucket will generate a random key at startup
|
||||||
|
# and previous sessions will be invalidated.
|
||||||
|
cookie.auth.key=secret-inbucket-session-cookie-key
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[datastore]
|
||||||
|
|
||||||
|
# Path to the datastore, mail will be written into subdirectories
|
||||||
|
path=%(datastore.dir)s
|
||||||
|
|
||||||
|
# How many minutes after receipt should a message be stored until it's
|
||||||
|
# automatically purged. To retain messages until manually deleted, set this
|
||||||
|
# to 0
|
||||||
|
retention.minutes=10080
|
||||||
|
|
||||||
|
# How many milliseconds to sleep after purging messages from a mailbox.
|
||||||
|
# This should help reduce disk I/O when there are a large number of messages
|
||||||
|
# to purge.
|
||||||
|
retention.sleep.millis=100
|
||||||
|
|
||||||
|
# Maximum number of messages we will store in a single mailbox. If this
|
||||||
|
# number is exceeded, the oldest message in the box will be deleted each
|
||||||
|
# time a new message is received for it.
|
||||||
|
mailbox.message.cap=100
|
||||||
147
etc/homebrew/inbucket.rb
Normal file
147
etc/homebrew/inbucket.rb
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
require "language/go"
|
||||||
|
|
||||||
|
class Inbucket < Formula
|
||||||
|
desc "Disposable webmail service with built in SMTP, POP3, REST servers"
|
||||||
|
homepage "http://www.inbucket.org/"
|
||||||
|
url "https://github.com/jhillyerd/inbucket.git", :tag => "1.1.0-rc3"
|
||||||
|
|
||||||
|
head "https://github.com/jhillyerd/inbucket.git", :branch => "develop"
|
||||||
|
|
||||||
|
devel do
|
||||||
|
url "https://github.com/jhillyerd/inbucket.git", :branch => "master"
|
||||||
|
version "1.1.1-alpha"
|
||||||
|
end
|
||||||
|
|
||||||
|
def log_path
|
||||||
|
var/"log/inbucket.log"
|
||||||
|
end
|
||||||
|
|
||||||
|
depends_on "go" => :build
|
||||||
|
|
||||||
|
go_resource "github.com/goods/httpbuf" do
|
||||||
|
url "https://github.com/goods/httpbuf.git",
|
||||||
|
:revision => "5709e9bb814c932e48b6737e1cf214a6522453a2"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/gorilla/context" do
|
||||||
|
url "https://github.com/gorilla/context.git",
|
||||||
|
:revision => "1ea25387ff6f684839d82767c1733ff4d4d15d0a"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/gorilla/mux" do
|
||||||
|
url "https://github.com/gorilla/mux.git",
|
||||||
|
:revision => "acf3be1b335c8ce30b2c8d51300984666f0ceefa"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/gorilla/securecookie" do
|
||||||
|
url "https://github.com/gorilla/securecookie.git",
|
||||||
|
:revision => "8dacca26977607e637262eb66b15b7d39f2d3009"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/gorilla/sessions" do
|
||||||
|
url "https://github.com/gorilla/sessions.git",
|
||||||
|
:revision => "8cd570d8b4ed84b18bca9d8c3ae2db55885ccd8b"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/jaytaylor/html2text" do
|
||||||
|
url "https://github.com/jaytaylor/html2text.git",
|
||||||
|
:revision => "4936b6c2ae7f89f5eeba2473c31fd27ea8f11068"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/jhillyerd/go.enmime" do
|
||||||
|
url "https://github.com/jhillyerd/go.enmime.git",
|
||||||
|
:revision => "3ea281bf3e00864f4afe2f9a6911af164438b581"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "github.com/robfig/config" do
|
||||||
|
url "https://github.com/robfig/config.git",
|
||||||
|
:revision => "0f78529c8c7e3e9a25f15876532ecbc07c7d99e6"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "golang.org/x/net" do
|
||||||
|
url "https://go.googlesource.com/net.git",
|
||||||
|
:revision => "3e5cd1ed149001198e582f9d3f5bfd564cde2896"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "golang.org/x/sys" do
|
||||||
|
url "https://go.googlesource.com/sys.git",
|
||||||
|
:revision => "7a56174f0086b32866ebd746a794417edbc678a1"
|
||||||
|
end
|
||||||
|
|
||||||
|
go_resource "golang.org/x/text" do
|
||||||
|
url "https://go.googlesource.com/text.git",
|
||||||
|
:revision => "a71fd10341b064c10f4a81ceac72bcf70f26ea34"
|
||||||
|
end
|
||||||
|
|
||||||
|
def install
|
||||||
|
package = "github.com/jhillyerd/inbucket"
|
||||||
|
contents = Dir["{*,.git,.gitignore}"]
|
||||||
|
gopath = buildpath/"gopath"
|
||||||
|
(gopath/"src/#{package}").install contents
|
||||||
|
|
||||||
|
ENV["GOPATH"] = gopath
|
||||||
|
ENV.prepend_create_path "PATH", gopath/"bin"
|
||||||
|
|
||||||
|
Language::Go.stage_deps resources, gopath/"src"
|
||||||
|
|
||||||
|
cd gopath/"src/#{package}" do
|
||||||
|
system "go", "build"
|
||||||
|
bin.install "inbucket"
|
||||||
|
pkgshare.install "themes"
|
||||||
|
inreplace "etc/homebrew/inbucket.conf" do |s|
|
||||||
|
# We want the config to use non-versioned paths
|
||||||
|
s.gsub!(/{{HOMEBREW_PREFIX}}/, HOMEBREW_PREFIX)
|
||||||
|
end
|
||||||
|
etc.install "etc/homebrew/inbucket.conf"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def caveats; <<-EOS.undent
|
||||||
|
By default, inbucket listens on the following TCP ports:
|
||||||
|
0.0.0.0:2500 - SMTP
|
||||||
|
0.0.0.0:1100 - POP3
|
||||||
|
0.0.0.0:9000 - HTTP
|
||||||
|
|
||||||
|
You may change these ports by editing #{etc}/inbucket.conf
|
||||||
|
|
||||||
|
Once inbucket has started, access its web interface at:
|
||||||
|
http://localhost:9000/
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
|
||||||
|
test do
|
||||||
|
system "#{bin}/inbucket", "-help"
|
||||||
|
end
|
||||||
|
|
||||||
|
plist_options :startup => "true"
|
||||||
|
|
||||||
|
def plist; <<-EOS.undent
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>#{plist_name}</string>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<true/>
|
||||||
|
<key>WorkingDirectory</key>
|
||||||
|
<string>#{HOMEBREW_PREFIX}</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>#{opt_bin}/inbucket</string>
|
||||||
|
<string>#{etc}/inbucket.conf</string>
|
||||||
|
</array>
|
||||||
|
<key>StandardErrorPath</key>
|
||||||
|
<string>#{log_path}</string>
|
||||||
|
<key>EnvironmentVariables</key>
|
||||||
|
<dict>
|
||||||
|
<key>LANG</key>
|
||||||
|
<string>en_US.UTF-8</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
EOS
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user