diff --git a/cmd/replds/pull.go b/cmd/replds/pull.go
index 1fcf3f41d373ac1bed581264bd1664b6d87ea6fb..156ede5dab47b392c4883c02b94e464d15979d51 100644
--- a/cmd/replds/pull.go
+++ b/cmd/replds/pull.go
@@ -40,12 +40,12 @@ func (c *pullCommand) Usage() string {
 }
 
 func (c *pullCommand) SetFlags(f *flag.FlagSet) {
-	f.StringVar(&c.serverAddr, "server", "", "server `address` (host:port)")
-	f.StringVar(&c.sslCert, "ssl-cert", "", "client SSL certificate `path`")
-	f.StringVar(&c.sslKey, "ssl-key", "", "client SSL private key `path`")
-	f.StringVar(&c.sslCA, "ssl-ca", "", "SSL CA `path`")
-	f.StringVar(&c.storePath, "store", "", "`path` for local file storage")
-	f.StringVar(&c.triggersPath, "triggers-dir", "", "`path` where trigger configs are stored")
+	f.StringVar(&c.serverAddr, "server", os.Getenv("REPLDS_SERVER"), "server `address` (host:port)")
+	f.StringVar(&c.sslCert, "ssl-cert", os.Getenv("REPLDS_SSL_CLIENT_CERT"), "client SSL certificate `path`")
+	f.StringVar(&c.sslKey, "ssl-key", os.Getenv("REPLDS_SSL_CLIENT_KEY"), "client SSL private key `path`")
+	f.StringVar(&c.sslCA, "ssl-ca", os.Getenv("REPLDS_SSL_CA"), "SSL CA `path`")
+	f.StringVar(&c.storePath, "store", os.Getenv("REPLDS_STORE"), "`path` for local file storage")
+	f.StringVar(&c.triggersPath, "triggers-dir", os.Getenv("REPLDS_TRIGGERS_DIR"), "`path` where trigger configs are stored")
 }
 
 func (c *pullCommand) grpcDialOptions() ([]grpc.DialOption, error) {
diff --git a/cmd/replds/server.go b/cmd/replds/server.go
index 50dd21fdf6bae442739545fdb29cc011e619e10f..f4cc7da650691577588e6255e2f7e591e1fb2142 100644
--- a/cmd/replds/server.go
+++ b/cmd/replds/server.go
@@ -9,6 +9,7 @@ import (
 	"net/http"
 	"os"
 	"os/signal"
+	"strings"
 	"syscall"
 	"time"
 
@@ -59,15 +60,19 @@ func (c *serverCommand) Usage() string {
 }
 
 func (c *serverCommand) SetFlags(f *flag.FlagSet) {
-	f.StringVar(&c.grpcAddr, "grpc-addr", ":3636", "`address` to listen on")
-	f.StringVar(&c.httpAddr, "http-addr", ":3638", "address to listen on for the HTTP API (optional)")
-	f.StringVar(&c.sslCert, "ssl-cert", "", "server SSL certificate `path`")
-	f.StringVar(&c.sslKey, "ssl-key", "", "server SSL private key `path`")
-	f.StringVar(&c.clientSSLCert, "client-ssl-cert", "", "client SSL certificate `path`")
-	f.StringVar(&c.clientSSLKey, "client-ssl-key", "", "client SSL private key `path`")
-	f.StringVar(&c.sslCA, "ssl-ca", "", "SSL CA `path`")
-	f.StringVar(&c.acls, "acls", "", "`path` to file with ACL specs")
-	f.StringVar(&c.storePath, "store", "", "`path` for local file storage")
+	f.StringVar(&c.grpcAddr, "grpc-addr", getenv("REPLDS_GRPC_ADDR", ":3636"), "`address` to listen on")
+	f.StringVar(&c.httpAddr, "http-addr", getenv("REPLDS_HTTP_ADDR", ":3638"), "address to listen on for the HTTP API (optional)")
+	f.StringVar(&c.sslCert, "ssl-cert", os.Getenv("REPLDS_SSL_CERT"), "server SSL certificate `path`")
+	f.StringVar(&c.sslKey, "ssl-key", os.Getenv("REPLDS_SSL_KEY"), "server SSL private key `path`")
+	f.StringVar(&c.clientSSLCert, "client-ssl-cert", os.Getenv("REPLDS_SSL_CLIENT_CERT"), "client SSL certificate `path`")
+	f.StringVar(&c.clientSSLKey, "client-ssl-key", os.Getenv("REPLDS_SSL_CLIENT_KEY"), "client SSL private key `path`")
+	f.StringVar(&c.sslCA, "ssl-ca", os.Getenv("REPLDS_SSL_CA"), "SSL CA `path`")
+	f.StringVar(&c.acls, "acls", os.Getenv("REPLDS_ACLS"), "`path` to file with ACL specs")
+	f.StringVar(&c.storePath, "store", os.Getenv("REPLDS_STORE"), "`path` for local file storage")
+
+	if s := os.Getenv("REPLDS_PEERS"); s != "" {
+		c.peers = listFlag(strings.Split(s, ","))
+	}
 	f.Var(&c.peers, "peer", "peer `addr`esses (can be specified multiple times)")
 }
 
diff --git a/cmd/replds/util.go b/cmd/replds/util.go
index 9500778e99385aabe183df0a62584c403702d2dc..1c8c6323a863c941dc233a29aa1ea819db2fc475 100644
--- a/cmd/replds/util.go
+++ b/cmd/replds/util.go
@@ -5,9 +5,17 @@ import (
 	"crypto/x509"
 	"fmt"
 	"io/ioutil"
+	"os"
 	"strings"
 )
 
+func getenv(key, dfl string) string {
+	if s := os.Getenv(key); s != "" {
+		return s
+	}
+	return dfl
+}
+
 type listFlag []string
 
 func (l *listFlag) Set(s string) error {