mirror of https://github.com/coder/coder.git
perf(cli): optimize CPU consumption of help pages (#9607)
This change reduces the CPU consumption of --help by ~50%. Also, this change removes ANSI escape codes from our golden files. I don't think those were worth the inability to parallelize golden file tests and global state fragility.
This commit is contained in:
parent
7311ffbd9d
commit
b63dfe7b75
|
@ -29,7 +29,7 @@ import (
|
|||
|
||||
// New creates a CLI instance with a configuration pointed to a
|
||||
// temporary testing directory.
|
||||
func New(t *testing.T, args ...string) (*clibase.Invocation, config.Root) {
|
||||
func New(t testing.TB, args ...string) (*clibase.Invocation, config.Root) {
|
||||
var root cli.RootCmd
|
||||
|
||||
cmd, err := root.Command(root.AGPL())
|
||||
|
@ -56,7 +56,7 @@ func (l *logWriter) Write(p []byte) (n int, err error) {
|
|||
}
|
||||
|
||||
func NewWithCommand(
|
||||
t *testing.T, cmd *clibase.Cmd, args ...string,
|
||||
t testing.TB, cmd *clibase.Cmd, args ...string,
|
||||
) (*clibase.Invocation, config.Root) {
|
||||
configDir := config.Root(t.TempDir())
|
||||
logger := slogtest.Make(t, nil)
|
||||
|
|
|
@ -11,11 +11,9 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/muesli/termenv"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/coder/coder/v2/cli/clibase"
|
||||
"github.com/coder/coder/v2/cli/cliui"
|
||||
"github.com/coder/coder/v2/cli/config"
|
||||
"github.com/coder/coder/v2/coderd/coderdtest"
|
||||
"github.com/coder/coder/v2/coderd/database/dbtestutil"
|
||||
|
@ -50,12 +48,8 @@ func DefaultCases() []CommandHelpCase {
|
|||
|
||||
// TestCommandHelp will test the help output of the given commands
|
||||
// using golden files.
|
||||
//
|
||||
//nolint:tparallel,paralleltest
|
||||
func TestCommandHelp(t *testing.T, getRoot func(t *testing.T) *clibase.Cmd, cases []CommandHelpCase) {
|
||||
// ANSI256 escape codes are far easier for humans to parse in a diff,
|
||||
// but TrueColor is probably more popular with modern terminals.
|
||||
cliui.TestColor(t, termenv.ANSI)
|
||||
t.Parallel()
|
||||
rootClient, replacements := prepareTestData(t)
|
||||
|
||||
root := getRoot(t)
|
||||
|
|
|
@ -340,7 +340,7 @@ func TestAgent(t *testing.T) {
|
|||
line := s.Text()
|
||||
t.Log(line)
|
||||
if len(tc.want) == 0 {
|
||||
require.Fail(t, "unexpected line: "+line)
|
||||
require.Fail(t, "unexpected line", line)
|
||||
}
|
||||
require.Contains(t, line, tc.want[0])
|
||||
tc.want = tc.want[1:]
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package cliui
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"os"
|
||||
"testing"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/muesli/termenv"
|
||||
|
@ -30,29 +31,29 @@ type Styles struct {
|
|||
Wrap pretty.Style
|
||||
}
|
||||
|
||||
var color = termenv.NewOutput(os.Stdout).ColorProfile()
|
||||
|
||||
// TestColor sets the color profile to the given profile for the duration of the
|
||||
// test.
|
||||
// WARN: Must not be used in parallel tests.
|
||||
func TestColor(t *testing.T, tprofile termenv.Profile) {
|
||||
old := color
|
||||
color = tprofile
|
||||
t.Cleanup(func() {
|
||||
color = old
|
||||
})
|
||||
}
|
||||
var (
|
||||
color termenv.Profile
|
||||
colorOnce sync.Once
|
||||
)
|
||||
|
||||
var (
|
||||
Green = color.Color("#04B575")
|
||||
Red = color.Color("#ED567A")
|
||||
Fuchsia = color.Color("#EE6FF8")
|
||||
Yellow = color.Color("#ECFD65")
|
||||
Blue = color.Color("#5000ff")
|
||||
Green = Color("#04B575")
|
||||
Red = Color("#ED567A")
|
||||
Fuchsia = Color("#EE6FF8")
|
||||
Yellow = Color("#ECFD65")
|
||||
Blue = Color("#5000ff")
|
||||
)
|
||||
|
||||
// Color returns a color for the given string.
|
||||
func Color(s string) termenv.Color {
|
||||
colorOnce.Do(func() {
|
||||
color = termenv.NewOutput(os.Stdout).ColorProfile()
|
||||
if flag.Lookup("test.v") != nil {
|
||||
// Use a consistent colorless profile in tests so that results
|
||||
// are deterministic.
|
||||
color = termenv.Ascii
|
||||
}
|
||||
})
|
||||
return color.Color(s)
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ func TestRenderAgentVersion(t *testing.T) {
|
|||
t.Run(testCase.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
actual := renderAgentVersion(testCase.agentVersion, testCase.serverVersion)
|
||||
assert.Equal(t, testCase.expected, actual)
|
||||
assert.Equal(t, testCase.expected, (actual))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
398
cli/help.go
398
cli/help.go
|
@ -2,16 +2,13 @@ package cli
|
|||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
"io"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
"text/tabwriter"
|
||||
"text/template"
|
||||
"unicode"
|
||||
|
||||
"github.com/mitchellh/go-wordwrap"
|
||||
"golang.org/x/crypto/ssh/terminal"
|
||||
|
@ -46,213 +43,222 @@ func wrapTTY(s string) string {
|
|||
return wordwrap.WrapString(s, uint(ttyWidth()))
|
||||
}
|
||||
|
||||
var usageTemplate = template.Must(
|
||||
template.New("usage").Funcs(
|
||||
template.FuncMap{
|
||||
"version": func() string {
|
||||
return buildinfo.Version()
|
||||
},
|
||||
"wrapTTY": func(s string) string {
|
||||
return wrapTTY(s)
|
||||
},
|
||||
"trimNewline": func(s string) string {
|
||||
return strings.TrimSuffix(s, "\n")
|
||||
},
|
||||
"keyword": func(s string) string {
|
||||
return pretty.Sprint(
|
||||
pretty.FgColor(cliui.Color("#87ceeb")),
|
||||
s,
|
||||
)
|
||||
},
|
||||
"prettyHeader": func(s string) string {
|
||||
return pretty.Sprint(
|
||||
pretty.FgColor(
|
||||
cliui.Color("#ffb500"),
|
||||
), strings.ToUpper(s), ":",
|
||||
)
|
||||
},
|
||||
"typeHelper": func(opt *clibase.Option) string {
|
||||
switch v := opt.Value.(type) {
|
||||
case *clibase.Enum:
|
||||
return strings.Join(v.Choices, "|")
|
||||
default:
|
||||
return v.Type()
|
||||
}
|
||||
},
|
||||
"joinStrings": func(s []string) string {
|
||||
return strings.Join(s, ", ")
|
||||
},
|
||||
"indent": func(body string, spaces int) string {
|
||||
twidth := ttyWidth()
|
||||
var usageTemplate = func() *template.Template {
|
||||
var (
|
||||
optionFg = pretty.FgColor(
|
||||
cliui.Color("#04A777"),
|
||||
)
|
||||
headerFg = pretty.FgColor(
|
||||
cliui.Color("#337CA0"),
|
||||
)
|
||||
)
|
||||
return template.Must(
|
||||
template.New("usage").Funcs(
|
||||
template.FuncMap{
|
||||
"version": func() string {
|
||||
return buildinfo.Version()
|
||||
},
|
||||
"wrapTTY": func(s string) string {
|
||||
return wrapTTY(s)
|
||||
},
|
||||
"trimNewline": func(s string) string {
|
||||
return strings.TrimSuffix(s, "\n")
|
||||
},
|
||||
"keyword": func(s string) string {
|
||||
txt := pretty.String(s)
|
||||
optionFg.Format(txt)
|
||||
return txt.String()
|
||||
},
|
||||
"prettyHeader": func(s string) string {
|
||||
s = strings.ToUpper(s)
|
||||
txt := pretty.String(s, ":")
|
||||
headerFg.Format(txt)
|
||||
return txt.String()
|
||||
},
|
||||
"typeHelper": func(opt *clibase.Option) string {
|
||||
switch v := opt.Value.(type) {
|
||||
case *clibase.Enum:
|
||||
return strings.Join(v.Choices, "|")
|
||||
default:
|
||||
return v.Type()
|
||||
}
|
||||
},
|
||||
"joinStrings": func(s []string) string {
|
||||
return strings.Join(s, ", ")
|
||||
},
|
||||
"indent": func(body string, spaces int) string {
|
||||
twidth := ttyWidth()
|
||||
|
||||
spacing := strings.Repeat(" ", spaces)
|
||||
spacing := strings.Repeat(" ", spaces)
|
||||
|
||||
body = wordwrap.WrapString(body, uint(twidth-len(spacing)))
|
||||
wrapLim := twidth - len(spacing)
|
||||
body = wordwrap.WrapString(body, uint(wrapLim))
|
||||
|
||||
sc := bufio.NewScanner(strings.NewReader(body))
|
||||
sc := bufio.NewScanner(strings.NewReader(body))
|
||||
|
||||
var sb strings.Builder
|
||||
for sc.Scan() {
|
||||
// Remove existing indent, if any.
|
||||
// line = strings.TrimSpace(line)
|
||||
// Use spaces so we can easily calculate wrapping.
|
||||
_, _ = sb.WriteString(spacing)
|
||||
_, _ = sb.Write(sc.Bytes())
|
||||
_, _ = sb.WriteString("\n")
|
||||
}
|
||||
return sb.String()
|
||||
},
|
||||
"formatSubcommand": func(cmd *clibase.Cmd) string {
|
||||
// Minimize padding by finding the longest neighboring name.
|
||||
maxNameLength := len(cmd.Name())
|
||||
if parent := cmd.Parent; parent != nil {
|
||||
for _, c := range parent.Children {
|
||||
if len(c.Name()) > maxNameLength {
|
||||
maxNameLength = len(c.Name())
|
||||
var sb strings.Builder
|
||||
for sc.Scan() {
|
||||
// Remove existing indent, if any.
|
||||
// line = strings.TrimSpace(line)
|
||||
// Use spaces so we can easily calculate wrapping.
|
||||
_, _ = sb.WriteString(spacing)
|
||||
_, _ = sb.Write(sc.Bytes())
|
||||
_, _ = sb.WriteString("\n")
|
||||
}
|
||||
return sb.String()
|
||||
},
|
||||
"formatSubcommand": func(cmd *clibase.Cmd) string {
|
||||
// Minimize padding by finding the longest neighboring name.
|
||||
maxNameLength := len(cmd.Name())
|
||||
if parent := cmd.Parent; parent != nil {
|
||||
for _, c := range parent.Children {
|
||||
if len(c.Name()) > maxNameLength {
|
||||
maxNameLength = len(c.Name())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sb strings.Builder
|
||||
_, _ = fmt.Fprintf(
|
||||
&sb, "%s%s%s",
|
||||
strings.Repeat(" ", 4), cmd.Name(), strings.Repeat(" ", maxNameLength-len(cmd.Name())+4),
|
||||
)
|
||||
var sb strings.Builder
|
||||
_, _ = fmt.Fprintf(
|
||||
&sb, "%s%s%s",
|
||||
strings.Repeat(" ", 4), cmd.Name(), strings.Repeat(" ", maxNameLength-len(cmd.Name())+4),
|
||||
)
|
||||
|
||||
// This is the point at which indentation begins if there's a
|
||||
// next line.
|
||||
descStart := sb.Len()
|
||||
// This is the point at which indentation begins if there's a
|
||||
// next line.
|
||||
descStart := sb.Len()
|
||||
|
||||
twidth := ttyWidth()
|
||||
twidth := ttyWidth()
|
||||
|
||||
for i, line := range strings.Split(
|
||||
wordwrap.WrapString(cmd.Short, uint(twidth-descStart)), "\n",
|
||||
) {
|
||||
if i > 0 {
|
||||
_, _ = sb.WriteString(strings.Repeat(" ", descStart))
|
||||
for i, line := range strings.Split(
|
||||
wordwrap.WrapString(cmd.Short, uint(twidth-descStart)), "\n",
|
||||
) {
|
||||
if i > 0 {
|
||||
_, _ = sb.WriteString(strings.Repeat(" ", descStart))
|
||||
}
|
||||
_, _ = sb.WriteString(line)
|
||||
_, _ = sb.WriteString("\n")
|
||||
}
|
||||
_, _ = sb.WriteString(line)
|
||||
_, _ = sb.WriteString("\n")
|
||||
}
|
||||
|
||||
return sb.String()
|
||||
},
|
||||
"envName": func(opt clibase.Option) string {
|
||||
if opt.Env == "" {
|
||||
return ""
|
||||
}
|
||||
return opt.Env
|
||||
},
|
||||
"flagName": func(opt clibase.Option) string {
|
||||
return opt.Flag
|
||||
},
|
||||
return sb.String()
|
||||
},
|
||||
"envName": func(opt clibase.Option) string {
|
||||
if opt.Env == "" {
|
||||
return ""
|
||||
}
|
||||
return opt.Env
|
||||
},
|
||||
"flagName": func(opt clibase.Option) string {
|
||||
return opt.Flag
|
||||
},
|
||||
|
||||
"isEnterprise": func(opt clibase.Option) bool {
|
||||
return opt.Annotations.IsSet("enterprise")
|
||||
},
|
||||
"isDeprecated": func(opt clibase.Option) bool {
|
||||
return len(opt.UseInstead) > 0
|
||||
},
|
||||
"useInstead": func(opt clibase.Option) string {
|
||||
var sb strings.Builder
|
||||
for i, s := range opt.UseInstead {
|
||||
if i > 0 {
|
||||
if i == len(opt.UseInstead)-1 {
|
||||
_, _ = sb.WriteString(" and ")
|
||||
"isEnterprise": func(opt clibase.Option) bool {
|
||||
return opt.Annotations.IsSet("enterprise")
|
||||
},
|
||||
"isDeprecated": func(opt clibase.Option) bool {
|
||||
return len(opt.UseInstead) > 0
|
||||
},
|
||||
"useInstead": func(opt clibase.Option) string {
|
||||
var sb strings.Builder
|
||||
for i, s := range opt.UseInstead {
|
||||
if i > 0 {
|
||||
if i == len(opt.UseInstead)-1 {
|
||||
_, _ = sb.WriteString(" and ")
|
||||
} else {
|
||||
_, _ = sb.WriteString(", ")
|
||||
}
|
||||
}
|
||||
if s.Flag != "" {
|
||||
_, _ = sb.WriteString("--")
|
||||
_, _ = sb.WriteString(s.Flag)
|
||||
} else if s.FlagShorthand != "" {
|
||||
_, _ = sb.WriteString("-")
|
||||
_, _ = sb.WriteString(s.FlagShorthand)
|
||||
} else if s.Env != "" {
|
||||
_, _ = sb.WriteString("$")
|
||||
_, _ = sb.WriteString(s.Env)
|
||||
} else {
|
||||
_, _ = sb.WriteString(", ")
|
||||
_, _ = sb.WriteString(s.Name)
|
||||
}
|
||||
}
|
||||
if s.Flag != "" {
|
||||
_, _ = sb.WriteString("--")
|
||||
_, _ = sb.WriteString(s.Flag)
|
||||
} else if s.FlagShorthand != "" {
|
||||
_, _ = sb.WriteString("-")
|
||||
_, _ = sb.WriteString(s.FlagShorthand)
|
||||
} else if s.Env != "" {
|
||||
_, _ = sb.WriteString("$")
|
||||
_, _ = sb.WriteString(s.Env)
|
||||
} else {
|
||||
_, _ = sb.WriteString(s.Name)
|
||||
}
|
||||
}
|
||||
return sb.String()
|
||||
},
|
||||
"formatGroupDescription": func(s string) string {
|
||||
s = strings.ReplaceAll(s, "\n", "")
|
||||
s = s + "\n"
|
||||
s = wrapTTY(s)
|
||||
return s
|
||||
},
|
||||
"visibleChildren": func(cmd *clibase.Cmd) []*clibase.Cmd {
|
||||
return filterSlice(cmd.Children, func(c *clibase.Cmd) bool {
|
||||
return !c.Hidden
|
||||
})
|
||||
},
|
||||
"optionGroups": func(cmd *clibase.Cmd) []optionGroup {
|
||||
groups := []optionGroup{{
|
||||
// Default group.
|
||||
Name: "",
|
||||
Description: "",
|
||||
}}
|
||||
return sb.String()
|
||||
},
|
||||
"formatGroupDescription": func(s string) string {
|
||||
s = strings.ReplaceAll(s, "\n", "")
|
||||
s = s + "\n"
|
||||
s = wrapTTY(s)
|
||||
return s
|
||||
},
|
||||
"visibleChildren": func(cmd *clibase.Cmd) []*clibase.Cmd {
|
||||
return filterSlice(cmd.Children, func(c *clibase.Cmd) bool {
|
||||
return !c.Hidden
|
||||
})
|
||||
},
|
||||
"optionGroups": func(cmd *clibase.Cmd) []optionGroup {
|
||||
groups := []optionGroup{{
|
||||
// Default group.
|
||||
Name: "",
|
||||
Description: "",
|
||||
}}
|
||||
|
||||
enterpriseGroup := optionGroup{
|
||||
Name: "Enterprise",
|
||||
Description: `These options are only available in the Enterprise Edition.`,
|
||||
}
|
||||
|
||||
// Sort options lexicographically.
|
||||
sort.Slice(cmd.Options, func(i, j int) bool {
|
||||
return cmd.Options[i].Name < cmd.Options[j].Name
|
||||
})
|
||||
|
||||
optionLoop:
|
||||
for _, opt := range cmd.Options {
|
||||
if opt.Hidden {
|
||||
continue
|
||||
}
|
||||
// Enterprise options are always grouped separately.
|
||||
if opt.Annotations.IsSet("enterprise") {
|
||||
enterpriseGroup.Options = append(enterpriseGroup.Options, opt)
|
||||
continue
|
||||
}
|
||||
if len(opt.Group.Ancestry()) == 0 {
|
||||
// Just add option to default group.
|
||||
groups[0].Options = append(groups[0].Options, opt)
|
||||
continue
|
||||
enterpriseGroup := optionGroup{
|
||||
Name: "Enterprise",
|
||||
Description: `These options are only available in the Enterprise Edition.`,
|
||||
}
|
||||
|
||||
groupName := opt.Group.FullName()
|
||||
// Sort options lexicographically.
|
||||
sort.Slice(cmd.Options, func(i, j int) bool {
|
||||
return cmd.Options[i].Name < cmd.Options[j].Name
|
||||
})
|
||||
|
||||
for i, foundGroup := range groups {
|
||||
if foundGroup.Name != groupName {
|
||||
optionLoop:
|
||||
for _, opt := range cmd.Options {
|
||||
if opt.Hidden {
|
||||
continue
|
||||
}
|
||||
groups[i].Options = append(groups[i].Options, opt)
|
||||
continue optionLoop
|
||||
// Enterprise options are always grouped separately.
|
||||
if opt.Annotations.IsSet("enterprise") {
|
||||
enterpriseGroup.Options = append(enterpriseGroup.Options, opt)
|
||||
continue
|
||||
}
|
||||
if len(opt.Group.Ancestry()) == 0 {
|
||||
// Just add option to default group.
|
||||
groups[0].Options = append(groups[0].Options, opt)
|
||||
continue
|
||||
}
|
||||
|
||||
groupName := opt.Group.FullName()
|
||||
|
||||
for i, foundGroup := range groups {
|
||||
if foundGroup.Name != groupName {
|
||||
continue
|
||||
}
|
||||
groups[i].Options = append(groups[i].Options, opt)
|
||||
continue optionLoop
|
||||
}
|
||||
|
||||
groups = append(groups, optionGroup{
|
||||
Name: groupName,
|
||||
Description: opt.Group.Description,
|
||||
Options: clibase.OptionSet{opt},
|
||||
})
|
||||
}
|
||||
|
||||
groups = append(groups, optionGroup{
|
||||
Name: groupName,
|
||||
Description: opt.Group.Description,
|
||||
Options: clibase.OptionSet{opt},
|
||||
sort.Slice(groups, func(i, j int) bool {
|
||||
// Sort groups lexicographically.
|
||||
return groups[i].Name < groups[j].Name
|
||||
})
|
||||
}
|
||||
sort.Slice(groups, func(i, j int) bool {
|
||||
// Sort groups lexicographically.
|
||||
return groups[i].Name < groups[j].Name
|
||||
})
|
||||
|
||||
// Always show enterprise group last.
|
||||
groups = append(groups, enterpriseGroup)
|
||||
// Always show enterprise group last.
|
||||
groups = append(groups, enterpriseGroup)
|
||||
|
||||
return filterSlice(groups, func(g optionGroup) bool {
|
||||
return len(g.Options) > 0
|
||||
})
|
||||
return filterSlice(groups, func(g optionGroup) bool {
|
||||
return len(g.Options) > 0
|
||||
})
|
||||
},
|
||||
},
|
||||
},
|
||||
).Parse(helpTemplateRaw),
|
||||
)
|
||||
).Parse(helpTemplateRaw),
|
||||
)
|
||||
}()
|
||||
|
||||
func filterSlice[T any](s []T, f func(T) bool) []T {
|
||||
var r []T
|
||||
|
@ -266,31 +272,41 @@ func filterSlice[T any](s []T, f func(T) bool) []T {
|
|||
|
||||
// newLineLimiter makes working with Go templates more bearable. Without this,
|
||||
// modifying the template is a slow toil of counting newlines and constantly
|
||||
// checking that a change to one command's help doesn't clobber break another.
|
||||
// checking that a change to one command's help doesn't break another.
|
||||
type newlineLimiter struct {
|
||||
w io.Writer
|
||||
// w is not an interface since we call WriteRune byte-wise,
|
||||
// and the devirtualization overhead is significant.
|
||||
w *bufio.Writer
|
||||
limit int
|
||||
|
||||
newLineCounter int
|
||||
}
|
||||
|
||||
// isSpace is a based on unicode.IsSpace, but only checks ASCII characters.
|
||||
func isSpace(b byte) bool {
|
||||
switch b {
|
||||
case '\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (lm *newlineLimiter) Write(p []byte) (int, error) {
|
||||
rd := bytes.NewReader(p)
|
||||
for r, n, _ := rd.ReadRune(); n > 0; r, n, _ = rd.ReadRune() {
|
||||
for _, b := range p {
|
||||
switch {
|
||||
case r == '\r':
|
||||
case b == '\r':
|
||||
// Carriage returns can sneak into `help.tpl` when `git clone`
|
||||
// is configured to automatically convert line endings.
|
||||
continue
|
||||
case r == '\n':
|
||||
case b == '\n':
|
||||
lm.newLineCounter++
|
||||
if lm.newLineCounter > lm.limit {
|
||||
continue
|
||||
}
|
||||
case !unicode.IsSpace(r):
|
||||
case !isSpace(b):
|
||||
lm.newLineCounter = 0
|
||||
}
|
||||
_, err := lm.w.Write([]byte(string(r)))
|
||||
err := lm.w.WriteByte(b)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
|
|
@ -1564,6 +1564,20 @@ func TestServer_Shutdown(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func BenchmarkServerHelp(b *testing.B) {
|
||||
// server --help is a good proxy for measuring the
|
||||
// constant overhead of each command.
|
||||
|
||||
b.ReportAllocs()
|
||||
for i := 0; i < b.N; i++ {
|
||||
inv, _ := clitest.New(b, "server", "--help")
|
||||
inv.Stdout = io.Discard
|
||||
inv.Stderr = io.Discard
|
||||
err := inv.Run()
|
||||
require.NoError(b, err)
|
||||
}
|
||||
}
|
||||
|
||||
func generateTLSCertificate(t testing.TB, commonName ...string) (certPath, keyPath string) {
|
||||
dir := t.TempDir()
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder [global-flags] <subcommand>
|
||||
|
||||
Coder v0.0.0-devel — A tool for provisioning self-hosted development
|
||||
|
@ -13,7 +13,7 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder templates init
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
config-ssh Add an SSH Host entry for your workspaces "ssh
|
||||
coder.workspace"
|
||||
create Create a workspace
|
||||
|
@ -49,42 +49,42 @@ coder v0.0.0-devel
|
|||
users Manage users
|
||||
version Show coder version
|
||||
|
||||
[93mGLOBAL OPTIONS:[0m
|
||||
GLOBAL OPTIONS:
|
||||
Global options are applied to all commands. They can be set using environment
|
||||
variables or flags.
|
||||
|
||||
[96m--[0m[96mdebug-options[0m bool
|
||||
--debug-options bool
|
||||
Print all options, how they're set, then exit.
|
||||
|
||||
[96m--[0m[96mdisable-direct-connections[0m bool, [96m$CODER_DISABLE_DIRECT_CONNECTIONS[0m
|
||||
--disable-direct-connections bool, $CODER_DISABLE_DIRECT_CONNECTIONS
|
||||
Disable direct (P2P) connections to workspaces.
|
||||
|
||||
[96m--[0m[96mglobal-config[0m string, [96m$CODER_CONFIG_DIR[0m (default: ~/.config/coderv2)
|
||||
--global-config string, $CODER_CONFIG_DIR (default: ~/.config/coderv2)
|
||||
Path to the global `coder` config directory.
|
||||
|
||||
[96m--[0m[96mheader[0m string-array, [96m$CODER_HEADER[0m
|
||||
--header string-array, $CODER_HEADER
|
||||
Additional HTTP headers added to all requests. Provide as key=value.
|
||||
Can be specified multiple times.
|
||||
|
||||
[96m--[0m[96mheader-command[0m string, [96m$CODER_HEADER_COMMAND[0m
|
||||
--header-command string, $CODER_HEADER_COMMAND
|
||||
An external command that outputs additional HTTP headers added to all
|
||||
requests. The command must output each header as `key=value` on its
|
||||
own line.
|
||||
|
||||
[96m--[0m[96mno-feature-warning[0m bool, [96m$CODER_NO_FEATURE_WARNING[0m
|
||||
--no-feature-warning bool, $CODER_NO_FEATURE_WARNING
|
||||
Suppress warnings about unlicensed features.
|
||||
|
||||
[96m--[0m[96mno-version-warning[0m bool, [96m$CODER_NO_VERSION_WARNING[0m
|
||||
--no-version-warning bool, $CODER_NO_VERSION_WARNING
|
||||
Suppress warning when client and server versions do not match.
|
||||
|
||||
[96m--[0m[96mtoken[0m string, [96m$CODER_SESSION_TOKEN[0m
|
||||
--token string, $CODER_SESSION_TOKEN
|
||||
Specify an authentication token. For security reasons setting
|
||||
CODER_SESSION_TOKEN is preferred.
|
||||
|
||||
[96m--[0m[96murl[0m url, [96m$CODER_URL[0m
|
||||
--url url, $CODER_URL
|
||||
URL to a deployment.
|
||||
|
||||
[96m-[0m[96mv[0m, [96m--[0m[96mverbose[0m bool, [96m$CODER_VERBOSE[0m
|
||||
-v, --verbose bool, $CODER_VERBOSE
|
||||
Enable verbose output.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,43 +1,43 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder agent [flags]
|
||||
|
||||
Starts the Coder workspace agent.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mlog-human[0m string, [96m$CODER_AGENT_LOGGING_HUMAN[0m (default: /dev/stderr)
|
||||
OPTIONS:
|
||||
--log-human string, $CODER_AGENT_LOGGING_HUMAN (default: /dev/stderr)
|
||||
Output human-readable logs to a given file.
|
||||
|
||||
[96m--[0m[96mlog-json[0m string, [96m$CODER_AGENT_LOGGING_JSON[0m
|
||||
--log-json string, $CODER_AGENT_LOGGING_JSON
|
||||
Output JSON logs to a given file.
|
||||
|
||||
[96m--[0m[96mlog-stackdriver[0m string, [96m$CODER_AGENT_LOGGING_STACKDRIVER[0m
|
||||
--log-stackdriver string, $CODER_AGENT_LOGGING_STACKDRIVER
|
||||
Output Stackdriver compatible logs to a given file.
|
||||
|
||||
[96m--[0m[96mauth[0m string, [96m$CODER_AGENT_AUTH[0m (default: token)
|
||||
--auth string, $CODER_AGENT_AUTH (default: token)
|
||||
Specify the authentication type to use for the agent.
|
||||
|
||||
[96m--[0m[96mdebug-address[0m string, [96m$CODER_AGENT_DEBUG_ADDRESS[0m (default: 127.0.0.1:2113)
|
||||
--debug-address string, $CODER_AGENT_DEBUG_ADDRESS (default: 127.0.0.1:2113)
|
||||
The bind address to serve a debug HTTP server.
|
||||
|
||||
[96m--[0m[96mlog-dir[0m string, [96m$CODER_AGENT_LOG_DIR[0m (default: /tmp)
|
||||
--log-dir string, $CODER_AGENT_LOG_DIR (default: /tmp)
|
||||
Specify the location for the agent log files.
|
||||
|
||||
[96m--[0m[96mno-reap[0m bool
|
||||
--no-reap bool
|
||||
Do not start a process reaper.
|
||||
|
||||
[96m--[0m[96mpprof-address[0m string, [96m$CODER_AGENT_PPROF_ADDRESS[0m (default: 127.0.0.1:6060)
|
||||
--pprof-address string, $CODER_AGENT_PPROF_ADDRESS (default: 127.0.0.1:6060)
|
||||
The address to serve pprof.
|
||||
|
||||
[96m--[0m[96mprometheus-address[0m string, [96m$CODER_AGENT_PROMETHEUS_ADDRESS[0m (default: 127.0.0.1:2112)
|
||||
--prometheus-address string, $CODER_AGENT_PROMETHEUS_ADDRESS (default: 127.0.0.1:2112)
|
||||
The bind address to serve Prometheus metrics.
|
||||
|
||||
[96m--[0m[96mssh-max-timeout[0m duration, [96m$CODER_AGENT_SSH_MAX_TIMEOUT[0m (default: 72h)
|
||||
--ssh-max-timeout duration, $CODER_AGENT_SSH_MAX_TIMEOUT (default: 72h)
|
||||
Specify the max timeout for a SSH connection, it is advisable to set
|
||||
it to a minimum of 60s, but no more than 72h.
|
||||
|
||||
[96m--[0m[96mtailnet-listen-port[0m int, [96m$CODER_AGENT_TAILNET_LISTEN_PORT[0m (default: 0)
|
||||
--tailnet-listen-port int, $CODER_AGENT_TAILNET_LISTEN_PORT (default: 0)
|
||||
Specify a static port for Tailscale to use for listening.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder config-ssh [flags]
|
||||
|
||||
Add an SSH Host entry for your workspaces "ssh coder.workspace"
|
||||
|
@ -15,40 +15,40 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder config-ssh --dry-run
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mcoder-binary-path[0m string, [96m$CODER_SSH_CONFIG_BINARY_PATH[0m
|
||||
OPTIONS:
|
||||
--coder-binary-path string, $CODER_SSH_CONFIG_BINARY_PATH
|
||||
Optionally specify the absolute path to the coder binary used in
|
||||
ProxyCommand. By default, the binary invoking this command ('config
|
||||
ssh') is used.
|
||||
|
||||
[96m-[0m[96mn[0m, [96m--[0m[96mdry-run[0m bool, [96m$CODER_SSH_DRY_RUN[0m
|
||||
-n, --dry-run bool, $CODER_SSH_DRY_RUN
|
||||
Perform a trial run with no changes made, showing a diff at the end.
|
||||
|
||||
[96m--[0m[96mforce-unix-filepaths[0m bool, [96m$CODER_CONFIGSSH_UNIX_FILEPATHS[0m
|
||||
--force-unix-filepaths bool, $CODER_CONFIGSSH_UNIX_FILEPATHS
|
||||
By default, 'config-ssh' uses the os path separator when writing the
|
||||
ssh config. This might be an issue in Windows machine that use a
|
||||
unix-like shell. This flag forces the use of unix file paths (the
|
||||
forward slash '/').
|
||||
|
||||
[96m--[0m[96mssh-config-file[0m string, [96m$CODER_SSH_CONFIG_FILE[0m (default: ~/.ssh/config)
|
||||
--ssh-config-file string, $CODER_SSH_CONFIG_FILE (default: ~/.ssh/config)
|
||||
Specifies the path to an SSH config.
|
||||
|
||||
[96m--[0m[96mssh-host-prefix[0m string, [96m$CODER_CONFIGSSH_SSH_HOST_PREFIX[0m
|
||||
--ssh-host-prefix string, $CODER_CONFIGSSH_SSH_HOST_PREFIX
|
||||
Override the default host prefix.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96mssh-option[0m string-array, [96m$CODER_SSH_CONFIG_OPTS[0m
|
||||
-o, --ssh-option string-array, $CODER_SSH_CONFIG_OPTS
|
||||
Specifies additional SSH options to embed in each host stanza.
|
||||
|
||||
[96m--[0m[96muse-previous-options[0m bool, [96m$CODER_SSH_USE_PREVIOUS_OPTIONS[0m
|
||||
--use-previous-options bool, $CODER_SSH_USE_PREVIOUS_OPTIONS
|
||||
Specifies whether or not to keep options from previous run of
|
||||
config-ssh.
|
||||
|
||||
[96m--[0m[96mwait[0m yes|no|auto, [96m$CODER_CONFIGSSH_WAIT[0m (default: auto)
|
||||
--wait yes|no|auto, $CODER_CONFIGSSH_WAIT (default: auto)
|
||||
Specifies whether or not to wait for the startup script to finish
|
||||
executing. Auto means that the agent startup script behavior
|
||||
configured in the workspace template is used.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder create [flags] [name]
|
||||
|
||||
Create a workspace
|
||||
|
@ -9,26 +9,26 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder create <username>/<workspace_name>
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mparameter[0m string-array, [96m$CODER_RICH_PARAMETER[0m
|
||||
OPTIONS:
|
||||
--parameter string-array, $CODER_RICH_PARAMETER
|
||||
Rich parameter value in the format "name=value".
|
||||
|
||||
[96m--[0m[96mrich-parameter-file[0m string, [96m$CODER_RICH_PARAMETER_FILE[0m
|
||||
--rich-parameter-file string, $CODER_RICH_PARAMETER_FILE
|
||||
Specify a file path with values for rich parameters defined in the
|
||||
template.
|
||||
|
||||
[96m--[0m[96mstart-at[0m string, [96m$CODER_WORKSPACE_START_AT[0m
|
||||
--start-at string, $CODER_WORKSPACE_START_AT
|
||||
Specify the workspace autostart schedule. Check coder schedule start
|
||||
--help for the syntax.
|
||||
|
||||
[96m--[0m[96mstop-after[0m duration, [96m$CODER_WORKSPACE_STOP_AFTER[0m
|
||||
--stop-after duration, $CODER_WORKSPACE_STOP_AFTER
|
||||
Specify a duration after which the workspace should shut down (e.g.
|
||||
8h).
|
||||
|
||||
[96m-[0m[96mt[0m, [96m--[0m[96mtemplate[0m string, [96m$CODER_TEMPLATE_NAME[0m
|
||||
-t, --template string, $CODER_TEMPLATE_NAME
|
||||
Specify a template name.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder delete [flags] <workspace>
|
||||
|
||||
Delete a workspace
|
||||
|
||||
Aliases: rm
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96morphan[0m bool
|
||||
OPTIONS:
|
||||
--orphan bool
|
||||
Delete a workspace without deleting its resources. This can delete a
|
||||
workspace in a broken state, but may also lead to unaccounted cloud
|
||||
resources.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder dotfiles [flags] <git_repo_url>
|
||||
|
||||
Personalize your workspace by applying a canonical dotfiles repository
|
||||
|
@ -9,17 +9,17 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder dotfiles --yes git@github.com:example/dotfiles.git
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mb[0m, [96m--[0m[96mbranch[0m string
|
||||
OPTIONS:
|
||||
-b, --branch string
|
||||
Specifies which branch to clone. If empty, will default to cloning the
|
||||
default branch or using the existing branch in the cloned repo on
|
||||
disk.
|
||||
|
||||
[96m--[0m[96msymlink-dir[0m string, [96m$CODER_SYMLINK_DIR[0m
|
||||
--symlink-dir string, $CODER_SYMLINK_DIR
|
||||
Specifies the directory for the dotfiles symlink destinations. If
|
||||
empty, will use $HOME.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder list [flags]
|
||||
|
||||
List workspaces
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96ma[0m, [96m--[0m[96mall[0m bool
|
||||
OPTIONS:
|
||||
-a, --all bool
|
||||
Specifies whether all workspaces will be listed or not.
|
||||
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: workspace,template,status,healthy,last built,outdated,starts at,stops after)
|
||||
-c, --column string-array (default: workspace,template,status,healthy,last built,outdated,starts at,stops after)
|
||||
Columns to display in table output. Available columns: workspace,
|
||||
template, status, healthy, last built, outdated, starts at, stops
|
||||
after, daily cost.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
[96m--[0m[96msearch[0m string (default: owner:me)
|
||||
--search string (default: owner:me)
|
||||
Search for a workspace with a query.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder login [flags] <url>
|
||||
|
||||
Authenticate with Coder deployment
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mfirst-user-email[0m string, [96m$CODER_FIRST_USER_EMAIL[0m
|
||||
OPTIONS:
|
||||
--first-user-email string, $CODER_FIRST_USER_EMAIL
|
||||
Specifies an email address to use if creating the first user for the
|
||||
deployment.
|
||||
|
||||
[96m--[0m[96mfirst-user-password[0m string, [96m$CODER_FIRST_USER_PASSWORD[0m
|
||||
--first-user-password string, $CODER_FIRST_USER_PASSWORD
|
||||
Specifies a password to use if creating the first user for the
|
||||
deployment.
|
||||
|
||||
[96m--[0m[96mfirst-user-trial[0m bool, [96m$CODER_FIRST_USER_TRIAL[0m
|
||||
--first-user-trial bool, $CODER_FIRST_USER_TRIAL
|
||||
Specifies whether a trial license should be provisioned for the Coder
|
||||
deployment or not.
|
||||
|
||||
[96m--[0m[96mfirst-user-username[0m string, [96m$CODER_FIRST_USER_USERNAME[0m
|
||||
--first-user-username string, $CODER_FIRST_USER_USERNAME
|
||||
Specifies a username to use if creating the first user for the
|
||||
deployment.
|
||||
|
||||
[96m--[0m[96muse-token-as-session[0m bool
|
||||
--use-token-as-session bool
|
||||
By default, the CLI will generate a new session token when logging in.
|
||||
This flag will instead use the provided token as the session token.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder logout [flags]
|
||||
|
||||
Unauthenticate your local session
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
OPTIONS:
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder netcheck
|
||||
|
||||
Print network debug information for DERP and STUN
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder ping [flags] <workspace>
|
||||
|
||||
Ping a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mn[0m, [96m--[0m[96mnum[0m int (default: 10)
|
||||
OPTIONS:
|
||||
-n, --num int (default: 10)
|
||||
Specifies the number of pings to perform.
|
||||
|
||||
[96m-[0m[96mt[0m, [96m--[0m[96mtimeout[0m duration (default: 5s)
|
||||
-t, --timeout duration (default: 5s)
|
||||
Specifies how long to wait for a ping to complete.
|
||||
|
||||
[96m--[0m[96mwait[0m duration (default: 1s)
|
||||
--wait duration (default: 1s)
|
||||
Specifies how long to wait between pings.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder port-forward [flags] <workspace>
|
||||
|
||||
Forward ports from a workspace to the local machine. For reverse port
|
||||
|
@ -33,11 +33,11 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder port-forward <workspace> --tcp 1.2.3.4:8080:8080
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mp[0m, [96m--[0m[96mtcp[0m string-array, [96m$CODER_PORT_FORWARD_TCP[0m
|
||||
OPTIONS:
|
||||
-p, --tcp string-array, $CODER_PORT_FORWARD_TCP
|
||||
Forward TCP port(s) from the workspace to the local machine.
|
||||
|
||||
[96m--[0m[96mudp[0m string-array, [96m$CODER_PORT_FORWARD_UDP[0m
|
||||
--udp string-array, $CODER_PORT_FORWARD_UDP
|
||||
Forward UDP port(s) from the workspace to the local machine. The UDP
|
||||
connection has TCP-like semantics to support stateful UDP protocols.
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder publickey [flags]
|
||||
|
||||
Output your Coder public key used for Git operations
|
||||
|
||||
Aliases: pubkey
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mreset[0m bool
|
||||
OPTIONS:
|
||||
--reset bool
|
||||
Regenerate your public key. This will require updating the key on any
|
||||
services it's registered with.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder rename [flags] <workspace> <new name>
|
||||
|
||||
Rename a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
OPTIONS:
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder reset-password [flags] <username>
|
||||
|
||||
Directly connect to the database to reset a user's password
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
OPTIONS:
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
URL of a PostgreSQL database to connect to.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder restart [flags] <workspace>
|
||||
|
||||
Restart a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mbuild-option[0m string-array, [96m$CODER_BUILD_OPTION[0m
|
||||
OPTIONS:
|
||||
--build-option string-array, $CODER_BUILD_OPTION
|
||||
Build option value in the format "name=value".
|
||||
|
||||
[96m--[0m[96mbuild-options[0m bool
|
||||
--build-options bool
|
||||
Prompt for one-time build options defined with ephemeral parameters.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder schedule { show | start | stop | override } <workspace>
|
||||
|
||||
Schedule automated start and stop times for workspaces
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
override-stop Override the stop time of a currently running workspace
|
||||
instance.
|
||||
show Show workspace schedule
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder schedule override-stop <workspace-name> <duration from now>
|
||||
|
||||
Override the stop time of a currently running workspace instance.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder schedule show <workspace-name>
|
||||
|
||||
Show workspace schedule
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder schedule start <workspace-name> { <start-time> [day-of-week] [location]
|
||||
| manual }
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder schedule stop <workspace-name> { <duration> | manual }
|
||||
|
||||
Edit workspace stop schedule
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server [flags]
|
||||
|
||||
Start a Coder server
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
create-admin-user Create a new admin user with the given username,
|
||||
email and password and adds it to every
|
||||
organization.
|
||||
|
@ -13,153 +13,153 @@ coder v0.0.0-devel
|
|||
postgres-builtin-url Output the connection URL for the built-in
|
||||
PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mcache-dir[0m string, [96m$CODER_CACHE_DIRECTORY[0m (default: [cache dir])
|
||||
OPTIONS:
|
||||
--cache-dir string, $CODER_CACHE_DIRECTORY (default: [cache dir])
|
||||
The directory to cache temporary files. If unspecified and
|
||||
$CACHE_DIRECTORY is set, it will be used for compatibility with
|
||||
systemd.
|
||||
|
||||
[96m--[0m[96mdisable-owner-workspace-access[0m bool, [96m$CODER_DISABLE_OWNER_WORKSPACE_ACCESS[0m
|
||||
--disable-owner-workspace-access bool, $CODER_DISABLE_OWNER_WORKSPACE_ACCESS
|
||||
Remove the permission for the 'owner' role to have workspace execution
|
||||
on all workspaces. This prevents the 'owner' from ssh, apps, and
|
||||
terminal access based on the 'owner' role. They still have their user
|
||||
permissions to access their own workspaces.
|
||||
|
||||
[96m--[0m[96mdisable-path-apps[0m bool, [96m$CODER_DISABLE_PATH_APPS[0m
|
||||
--disable-path-apps bool, $CODER_DISABLE_PATH_APPS
|
||||
Disable workspace apps that are not served from subdomains. Path-based
|
||||
apps can make requests to the Coder API and pose a security risk when
|
||||
the workspace serves malicious JavaScript. This is recommended for
|
||||
security purposes if a --wildcard-access-url is configured.
|
||||
|
||||
[96m--[0m[96mswagger-enable[0m bool, [96m$CODER_SWAGGER_ENABLE[0m
|
||||
--swagger-enable bool, $CODER_SWAGGER_ENABLE
|
||||
Expose the swagger endpoint via /swagger.
|
||||
|
||||
[96m--[0m[96mexperiments[0m string-array, [96m$CODER_EXPERIMENTS[0m
|
||||
--experiments string-array, $CODER_EXPERIMENTS
|
||||
Enable one or more experiments. These are not ready for production.
|
||||
Separate multiple experiments with commas, or enter '*' to opt-in to
|
||||
all available experiments.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
URL of a PostgreSQL database. If empty, PostgreSQL binaries will be
|
||||
downloaded from Maven (https://repo1.maven.org/maven2) and store all
|
||||
data in the config root. Access the built-in database with "coder
|
||||
server postgres-builtin-url".
|
||||
|
||||
[96m--[0m[96mssh-keygen-algorithm[0m string, [96m$CODER_SSH_KEYGEN_ALGORITHM[0m (default: ed25519)
|
||||
--ssh-keygen-algorithm string, $CODER_SSH_KEYGEN_ALGORITHM (default: ed25519)
|
||||
The algorithm to use for generating ssh keys. Accepted values are
|
||||
"ed25519", "ecdsa", or "rsa4096".
|
||||
|
||||
[96m--[0m[96mupdate-check[0m bool, [96m$CODER_UPDATE_CHECK[0m (default: false)
|
||||
--update-check bool, $CODER_UPDATE_CHECK (default: false)
|
||||
Periodically check for new releases of Coder and inform the owner. The
|
||||
check is performed once per day.
|
||||
|
||||
[93mCLIENT OPTIONS:[0m
|
||||
CLIENT OPTIONS:
|
||||
These options change the behavior of how clients interact with the Coder.
|
||||
Clients include the coder cli, vs code extension, and the web UI.
|
||||
|
||||
[96m--[0m[96mssh-config-options[0m string-array, [96m$CODER_SSH_CONFIG_OPTIONS[0m
|
||||
--ssh-config-options string-array, $CODER_SSH_CONFIG_OPTIONS
|
||||
These SSH config options will override the default SSH config options.
|
||||
Provide options in "key=value" or "key value" format separated by
|
||||
commas.Using this incorrectly can break SSH to your deployment, use
|
||||
cautiously.
|
||||
|
||||
[96m--[0m[96mssh-hostname-prefix[0m string, [96m$CODER_SSH_HOSTNAME_PREFIX[0m (default: coder.)
|
||||
--ssh-hostname-prefix string, $CODER_SSH_HOSTNAME_PREFIX (default: coder.)
|
||||
The SSH deployment prefix is used in the Host of the ssh config.
|
||||
|
||||
[93mCONFIG OPTIONS:[0m
|
||||
CONFIG OPTIONS:
|
||||
Use a YAML configuration file when your server launch become unwieldy.
|
||||
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mconfig[0m yaml-config-path, [96m$CODER_CONFIG_PATH[0m
|
||||
-c, --config yaml-config-path, $CODER_CONFIG_PATH
|
||||
Specify a YAML file to load configuration from.
|
||||
|
||||
[96m--[0m[96mwrite-config[0m bool
|
||||
--write-config bool
|
||||
|
||||
Write out the current server config as YAML to stdout.
|
||||
|
||||
[93mINTROSPECTION / LOGGING OPTIONS:[0m
|
||||
[96m--[0m[96menable-terraform-debug-mode[0m bool, [96m$CODER_ENABLE_TERRAFORM_DEBUG_MODE[0m (default: false)
|
||||
INTROSPECTION / LOGGING OPTIONS:
|
||||
--enable-terraform-debug-mode bool, $CODER_ENABLE_TERRAFORM_DEBUG_MODE (default: false)
|
||||
Allow administrators to enable Terraform debug output.
|
||||
|
||||
[96m--[0m[96mlog-human[0m string, [96m$CODER_LOGGING_HUMAN[0m (default: /dev/stderr)
|
||||
--log-human string, $CODER_LOGGING_HUMAN (default: /dev/stderr)
|
||||
Output human-readable logs to a given file.
|
||||
|
||||
[96m--[0m[96mlog-json[0m string, [96m$CODER_LOGGING_JSON[0m
|
||||
--log-json string, $CODER_LOGGING_JSON
|
||||
Output JSON logs to a given file.
|
||||
|
||||
[96m-[0m[96ml[0m, [96m--[0m[96mlog-filter[0m string-array, [96m$CODER_LOG_FILTER[0m
|
||||
-l, --log-filter string-array, $CODER_LOG_FILTER
|
||||
Filter debug logs by matching against a given regex. Use .* to match
|
||||
all debug logs.
|
||||
|
||||
[96m--[0m[96mlog-stackdriver[0m string, [96m$CODER_LOGGING_STACKDRIVER[0m
|
||||
--log-stackdriver string, $CODER_LOGGING_STACKDRIVER
|
||||
Output Stackdriver compatible logs to a given file.
|
||||
|
||||
[93mINTROSPECTION / PROMETHEUS OPTIONS:[0m
|
||||
[96m--[0m[96mprometheus-address[0m host:port, [96m$CODER_PROMETHEUS_ADDRESS[0m (default: 127.0.0.1:2112)
|
||||
INTROSPECTION / PROMETHEUS OPTIONS:
|
||||
--prometheus-address host:port, $CODER_PROMETHEUS_ADDRESS (default: 127.0.0.1:2112)
|
||||
The bind address to serve prometheus metrics.
|
||||
|
||||
[96m--[0m[96mprometheus-collect-agent-stats[0m bool, [96m$CODER_PROMETHEUS_COLLECT_AGENT_STATS[0m
|
||||
--prometheus-collect-agent-stats bool, $CODER_PROMETHEUS_COLLECT_AGENT_STATS
|
||||
Collect agent stats (may increase charges for metrics storage).
|
||||
|
||||
[96m--[0m[96mprometheus-collect-db-metrics[0m bool, [96m$CODER_PROMETHEUS_COLLECT_DB_METRICS[0m (default: false)
|
||||
--prometheus-collect-db-metrics bool, $CODER_PROMETHEUS_COLLECT_DB_METRICS (default: false)
|
||||
Collect database metrics (may increase charges for metrics storage).
|
||||
|
||||
[96m--[0m[96mprometheus-enable[0m bool, [96m$CODER_PROMETHEUS_ENABLE[0m
|
||||
--prometheus-enable bool, $CODER_PROMETHEUS_ENABLE
|
||||
Serve prometheus metrics on the address defined by prometheus address.
|
||||
|
||||
[93mINTROSPECTION / TRACING OPTIONS:[0m
|
||||
[96m--[0m[96mtrace-logs[0m bool, [96m$CODER_TRACE_LOGS[0m
|
||||
INTROSPECTION / TRACING OPTIONS:
|
||||
--trace-logs bool, $CODER_TRACE_LOGS
|
||||
Enables capturing of logs as events in traces. This is useful for
|
||||
debugging, but may result in a very large amount of events being sent
|
||||
to the tracing backend which may incur significant costs.
|
||||
|
||||
[96m--[0m[96mtrace[0m bool, [96m$CODER_TRACE_ENABLE[0m
|
||||
--trace bool, $CODER_TRACE_ENABLE
|
||||
Whether application tracing data is collected. It exports to a backend
|
||||
configured by environment variables. See:
|
||||
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md.
|
||||
|
||||
[96m--[0m[96mtrace-honeycomb-api-key[0m string, [96m$CODER_TRACE_HONEYCOMB_API_KEY[0m
|
||||
--trace-honeycomb-api-key string, $CODER_TRACE_HONEYCOMB_API_KEY
|
||||
Enables trace exporting to Honeycomb.io using the provided API Key.
|
||||
|
||||
[93mINTROSPECTION / PPROF OPTIONS:[0m
|
||||
[96m--[0m[96mpprof-address[0m host:port, [96m$CODER_PPROF_ADDRESS[0m (default: 127.0.0.1:6060)
|
||||
INTROSPECTION / PPROF OPTIONS:
|
||||
--pprof-address host:port, $CODER_PPROF_ADDRESS (default: 127.0.0.1:6060)
|
||||
The bind address to serve pprof.
|
||||
|
||||
[96m--[0m[96mpprof-enable[0m bool, [96m$CODER_PPROF_ENABLE[0m
|
||||
--pprof-enable bool, $CODER_PPROF_ENABLE
|
||||
Serve pprof metrics on the address defined by pprof address.
|
||||
|
||||
[93mNETWORKING OPTIONS:[0m
|
||||
[96m--[0m[96maccess-url[0m url, [96m$CODER_ACCESS_URL[0m
|
||||
NETWORKING OPTIONS:
|
||||
--access-url url, $CODER_ACCESS_URL
|
||||
The URL that users will use to access the Coder deployment.
|
||||
|
||||
[96m--[0m[96mdocs-url[0m url, [96m$CODER_DOCS_URL[0m
|
||||
--docs-url url, $CODER_DOCS_URL
|
||||
Specifies the custom docs URL.
|
||||
|
||||
[96m--[0m[96mproxy-trusted-headers[0m string-array, [96m$CODER_PROXY_TRUSTED_HEADERS[0m
|
||||
--proxy-trusted-headers string-array, $CODER_PROXY_TRUSTED_HEADERS
|
||||
Headers to trust for forwarding IP addresses. e.g. Cf-Connecting-Ip,
|
||||
True-Client-Ip, X-Forwarded-For.
|
||||
|
||||
[96m--[0m[96mproxy-trusted-origins[0m string-array, [96m$CODER_PROXY_TRUSTED_ORIGINS[0m
|
||||
--proxy-trusted-origins string-array, $CODER_PROXY_TRUSTED_ORIGINS
|
||||
Origin addresses to respect "proxy-trusted-headers". e.g.
|
||||
192.168.1.0/24.
|
||||
|
||||
[96m--[0m[96mredirect-to-access-url[0m bool, [96m$CODER_REDIRECT_TO_ACCESS_URL[0m
|
||||
--redirect-to-access-url bool, $CODER_REDIRECT_TO_ACCESS_URL
|
||||
Specifies whether to redirect requests that do not match the access
|
||||
URL host.
|
||||
|
||||
[96m--[0m[96msecure-auth-cookie[0m bool, [96m$CODER_SECURE_AUTH_COOKIE[0m
|
||||
--secure-auth-cookie bool, $CODER_SECURE_AUTH_COOKIE
|
||||
Controls if the 'Secure' property is set on browser session cookies.
|
||||
|
||||
[96m--[0m[96mwildcard-access-url[0m url, [96m$CODER_WILDCARD_ACCESS_URL[0m
|
||||
--wildcard-access-url url, $CODER_WILDCARD_ACCESS_URL
|
||||
Specifies the wildcard hostname to use for workspace applications in
|
||||
the form "*.example.com".
|
||||
|
||||
[93mNETWORKING / DERP OPTIONS:[0m
|
||||
NETWORKING / DERP OPTIONS:
|
||||
Most Coder deployments never have to think about DERP because all connections
|
||||
between workspaces and users are peer-to-peer. However, when Coder cannot
|
||||
establish a peer to peer connection, Coder uses a distributed relay network
|
||||
backed by Tailscale and WireGuard.
|
||||
|
||||
[96m--[0m[96mblock-direct-connections[0m bool, [96m$CODER_BLOCK_DIRECT[0m
|
||||
--block-direct-connections bool, $CODER_BLOCK_DIRECT
|
||||
Block peer-to-peer (aka. direct) workspace connections. All workspace
|
||||
connections from the CLI will be proxied through Coder (or custom
|
||||
configured DERP servers) and will never be peer-to-peer when enabled.
|
||||
|
@ -167,36 +167,36 @@ backed by Tailscale and WireGuard.
|
|||
until they are restarted after this change has been made, but new
|
||||
connections will still be proxied regardless.
|
||||
|
||||
[96m--[0m[96mderp-config-path[0m string, [96m$CODER_DERP_CONFIG_PATH[0m
|
||||
--derp-config-path string, $CODER_DERP_CONFIG_PATH
|
||||
Path to read a DERP mapping from. See:
|
||||
https://tailscale.com/kb/1118/custom-derp-servers/.
|
||||
|
||||
[96m--[0m[96mderp-config-url[0m string, [96m$CODER_DERP_CONFIG_URL[0m
|
||||
--derp-config-url string, $CODER_DERP_CONFIG_URL
|
||||
URL to fetch a DERP mapping on startup. See:
|
||||
https://tailscale.com/kb/1118/custom-derp-servers/.
|
||||
|
||||
[96m--[0m[96mderp-force-websockets[0m bool, [96m$CODER_DERP_FORCE_WEBSOCKETS[0m
|
||||
--derp-force-websockets bool, $CODER_DERP_FORCE_WEBSOCKETS
|
||||
Force clients and agents to always use WebSocket to connect to DERP
|
||||
relay servers. By default, DERP uses `Upgrade: derp`, which may cause
|
||||
issues with some reverse proxies. Clients may automatically fallback
|
||||
to WebSocket if they detect an issue with `Upgrade: derp`, but this
|
||||
does not work in all situations.
|
||||
|
||||
[96m--[0m[96mderp-server-enable[0m bool, [96m$CODER_DERP_SERVER_ENABLE[0m (default: true)
|
||||
--derp-server-enable bool, $CODER_DERP_SERVER_ENABLE (default: true)
|
||||
Whether to enable or disable the embedded DERP relay server.
|
||||
|
||||
[96m--[0m[96mderp-server-region-name[0m string, [96m$CODER_DERP_SERVER_REGION_NAME[0m (default: Coder Embedded Relay)
|
||||
--derp-server-region-name string, $CODER_DERP_SERVER_REGION_NAME (default: Coder Embedded Relay)
|
||||
Region name that for the embedded DERP server.
|
||||
|
||||
[96m--[0m[96mderp-server-stun-addresses[0m string-array, [96m$CODER_DERP_SERVER_STUN_ADDRESSES[0m (default: stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302,stun3.l.google.com:19302,stun4.l.google.com:19302)
|
||||
--derp-server-stun-addresses string-array, $CODER_DERP_SERVER_STUN_ADDRESSES (default: stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302,stun3.l.google.com:19302,stun4.l.google.com:19302)
|
||||
Addresses for STUN servers to establish P2P connections. It's
|
||||
recommended to have at least two STUN servers to give users the best
|
||||
chance of connecting P2P to workspaces. Each STUN server will get it's
|
||||
own DERP region, with region IDs starting at `--derp-server-region-id
|
||||
+ 1`. Use special value 'disable' to turn off STUN completely.
|
||||
|
||||
[93mNETWORKING / HTTP OPTIONS:[0m
|
||||
[96m--[0m[96mdisable-password-auth[0m bool, [96m$CODER_DISABLE_PASSWORD_AUTH[0m
|
||||
NETWORKING / HTTP OPTIONS:
|
||||
--disable-password-auth bool, $CODER_DISABLE_PASSWORD_AUTH
|
||||
Disable password authentication. This is recommended for security
|
||||
purposes in production deployments that rely on an identity provider.
|
||||
Any user with the owner role will be able to sign in with their
|
||||
|
@ -205,221 +205,221 @@ backed by Tailscale and WireGuard.
|
|||
create-admin` command to create a new admin user directly in the
|
||||
database.
|
||||
|
||||
[96m--[0m[96mdisable-session-expiry-refresh[0m bool, [96m$CODER_DISABLE_SESSION_EXPIRY_REFRESH[0m
|
||||
--disable-session-expiry-refresh bool, $CODER_DISABLE_SESSION_EXPIRY_REFRESH
|
||||
Disable automatic session expiry bumping due to activity. This forces
|
||||
all sessions to become invalid after the session expiry duration has
|
||||
been reached.
|
||||
|
||||
[96m--[0m[96mhttp-address[0m string, [96m$CODER_HTTP_ADDRESS[0m (default: 127.0.0.1:3000)
|
||||
--http-address string, $CODER_HTTP_ADDRESS (default: 127.0.0.1:3000)
|
||||
HTTP bind address of the server. Unset to disable the HTTP endpoint.
|
||||
|
||||
[96m--[0m[96mmax-token-lifetime[0m duration, [96m$CODER_MAX_TOKEN_LIFETIME[0m (default: 876600h0m0s)
|
||||
--max-token-lifetime duration, $CODER_MAX_TOKEN_LIFETIME (default: 876600h0m0s)
|
||||
The maximum lifetime duration users can specify when creating an API
|
||||
token.
|
||||
|
||||
[96m--[0m[96mproxy-health-interval[0m duration, [96m$CODER_PROXY_HEALTH_INTERVAL[0m (default: 1m0s)
|
||||
--proxy-health-interval duration, $CODER_PROXY_HEALTH_INTERVAL (default: 1m0s)
|
||||
The interval in which coderd should be checking the status of
|
||||
workspace proxies.
|
||||
|
||||
[96m--[0m[96msession-duration[0m duration, [96m$CODER_SESSION_DURATION[0m (default: 24h0m0s)
|
||||
--session-duration duration, $CODER_SESSION_DURATION (default: 24h0m0s)
|
||||
The token expiry duration for browser sessions. Sessions may last
|
||||
longer if they are actively making requests, but this functionality
|
||||
can be disabled via --disable-session-expiry-refresh.
|
||||
|
||||
[93mNETWORKING / TLS OPTIONS:[0m
|
||||
NETWORKING / TLS OPTIONS:
|
||||
Configure TLS / HTTPS for your Coder deployment. If you're running Coder behind
|
||||
a TLS-terminating reverse proxy or are accessing Coder over a secure link, you
|
||||
can safely ignore these settings.
|
||||
|
||||
[96m--[0m[96mstrict-transport-security[0m int, [96m$CODER_STRICT_TRANSPORT_SECURITY[0m (default: 0)
|
||||
--strict-transport-security int, $CODER_STRICT_TRANSPORT_SECURITY (default: 0)
|
||||
Controls if the 'Strict-Transport-Security' header is set on all
|
||||
static file responses. This header should only be set if the server is
|
||||
accessed via HTTPS. This value is the MaxAge in seconds of the header.
|
||||
|
||||
[96m--[0m[96mstrict-transport-security-options[0m string-array, [96m$CODER_STRICT_TRANSPORT_SECURITY_OPTIONS[0m
|
||||
--strict-transport-security-options string-array, $CODER_STRICT_TRANSPORT_SECURITY_OPTIONS
|
||||
Two optional fields can be set in the Strict-Transport-Security
|
||||
header; 'includeSubDomains' and 'preload'. The
|
||||
'strict-transport-security' flag must be set to a non-zero value for
|
||||
these options to be used.
|
||||
|
||||
[96m--[0m[96mtls-address[0m host:port, [96m$CODER_TLS_ADDRESS[0m (default: 127.0.0.1:3443)
|
||||
--tls-address host:port, $CODER_TLS_ADDRESS (default: 127.0.0.1:3443)
|
||||
HTTPS bind address of the server.
|
||||
|
||||
[96m--[0m[96mtls-cert-file[0m string-array, [96m$CODER_TLS_CERT_FILE[0m
|
||||
--tls-cert-file string-array, $CODER_TLS_CERT_FILE
|
||||
Path to each certificate for TLS. It requires a PEM-encoded file. To
|
||||
configure the listener to use a CA certificate, concatenate the
|
||||
primary certificate and the CA certificate together. The primary
|
||||
certificate should appear first in the combined file.
|
||||
|
||||
[96m--[0m[96mtls-client-auth[0m string, [96m$CODER_TLS_CLIENT_AUTH[0m (default: none)
|
||||
--tls-client-auth string, $CODER_TLS_CLIENT_AUTH (default: none)
|
||||
Policy the server will follow for TLS Client Authentication. Accepted
|
||||
values are "none", "request", "require-any", "verify-if-given", or
|
||||
"require-and-verify".
|
||||
|
||||
[96m--[0m[96mtls-client-ca-file[0m string, [96m$CODER_TLS_CLIENT_CA_FILE[0m
|
||||
--tls-client-ca-file string, $CODER_TLS_CLIENT_CA_FILE
|
||||
PEM-encoded Certificate Authority file used for checking the
|
||||
authenticity of client.
|
||||
|
||||
[96m--[0m[96mtls-client-cert-file[0m string, [96m$CODER_TLS_CLIENT_CERT_FILE[0m
|
||||
--tls-client-cert-file string, $CODER_TLS_CLIENT_CERT_FILE
|
||||
Path to certificate for client TLS authentication. It requires a
|
||||
PEM-encoded file.
|
||||
|
||||
[96m--[0m[96mtls-client-key-file[0m string, [96m$CODER_TLS_CLIENT_KEY_FILE[0m
|
||||
--tls-client-key-file string, $CODER_TLS_CLIENT_KEY_FILE
|
||||
Path to key for client TLS authentication. It requires a PEM-encoded
|
||||
file.
|
||||
|
||||
[96m--[0m[96mtls-enable[0m bool, [96m$CODER_TLS_ENABLE[0m
|
||||
--tls-enable bool, $CODER_TLS_ENABLE
|
||||
Whether TLS will be enabled.
|
||||
|
||||
[96m--[0m[96mtls-key-file[0m string-array, [96m$CODER_TLS_KEY_FILE[0m
|
||||
--tls-key-file string-array, $CODER_TLS_KEY_FILE
|
||||
Paths to the private keys for each of the certificates. It requires a
|
||||
PEM-encoded file.
|
||||
|
||||
[96m--[0m[96mtls-min-version[0m string, [96m$CODER_TLS_MIN_VERSION[0m (default: tls12)
|
||||
--tls-min-version string, $CODER_TLS_MIN_VERSION (default: tls12)
|
||||
Minimum supported version of TLS. Accepted values are "tls10",
|
||||
"tls11", "tls12" or "tls13".
|
||||
|
||||
[93mOAUTH2 / GITHUB OPTIONS:[0m
|
||||
[96m--[0m[96moauth2-github-allow-everyone[0m bool, [96m$CODER_OAUTH2_GITHUB_ALLOW_EVERYONE[0m
|
||||
OAUTH2 / GITHUB OPTIONS:
|
||||
--oauth2-github-allow-everyone bool, $CODER_OAUTH2_GITHUB_ALLOW_EVERYONE
|
||||
Allow all logins, setting this option means allowed orgs and teams
|
||||
must be empty.
|
||||
|
||||
[96m--[0m[96moauth2-github-allow-signups[0m bool, [96m$CODER_OAUTH2_GITHUB_ALLOW_SIGNUPS[0m
|
||||
--oauth2-github-allow-signups bool, $CODER_OAUTH2_GITHUB_ALLOW_SIGNUPS
|
||||
Whether new users can sign up with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-allowed-orgs[0m string-array, [96m$CODER_OAUTH2_GITHUB_ALLOWED_ORGS[0m
|
||||
--oauth2-github-allowed-orgs string-array, $CODER_OAUTH2_GITHUB_ALLOWED_ORGS
|
||||
Organizations the user must be a member of to Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-allowed-teams[0m string-array, [96m$CODER_OAUTH2_GITHUB_ALLOWED_TEAMS[0m
|
||||
--oauth2-github-allowed-teams string-array, $CODER_OAUTH2_GITHUB_ALLOWED_TEAMS
|
||||
Teams inside organizations the user must be a member of to Login with
|
||||
GitHub. Structured as: <organization-name>/<team-slug>.
|
||||
|
||||
[96m--[0m[96moauth2-github-client-id[0m string, [96m$CODER_OAUTH2_GITHUB_CLIENT_ID[0m
|
||||
--oauth2-github-client-id string, $CODER_OAUTH2_GITHUB_CLIENT_ID
|
||||
Client ID for Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-client-secret[0m string, [96m$CODER_OAUTH2_GITHUB_CLIENT_SECRET[0m
|
||||
--oauth2-github-client-secret string, $CODER_OAUTH2_GITHUB_CLIENT_SECRET
|
||||
Client secret for Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-enterprise-base-url[0m string, [96m$CODER_OAUTH2_GITHUB_ENTERPRISE_BASE_URL[0m
|
||||
--oauth2-github-enterprise-base-url string, $CODER_OAUTH2_GITHUB_ENTERPRISE_BASE_URL
|
||||
Base URL of a GitHub Enterprise deployment to use for Login with
|
||||
GitHub.
|
||||
|
||||
[93mOIDC OPTIONS:[0m
|
||||
[96m--[0m[96moidc-group-auto-create[0m bool, [96m$CODER_OIDC_GROUP_AUTO_CREATE[0m (default: false)
|
||||
OIDC OPTIONS:
|
||||
--oidc-group-auto-create bool, $CODER_OIDC_GROUP_AUTO_CREATE (default: false)
|
||||
Automatically creates missing groups from a user's groups claim.
|
||||
|
||||
[96m--[0m[96moidc-allow-signups[0m bool, [96m$CODER_OIDC_ALLOW_SIGNUPS[0m (default: true)
|
||||
--oidc-allow-signups bool, $CODER_OIDC_ALLOW_SIGNUPS (default: true)
|
||||
Whether new users can sign up with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-auth-url-params[0m struct[map[string]string], [96m$CODER_OIDC_AUTH_URL_PARAMS[0m (default: {"access_type": "offline"})
|
||||
--oidc-auth-url-params struct[map[string]string], $CODER_OIDC_AUTH_URL_PARAMS (default: {"access_type": "offline"})
|
||||
OIDC auth URL parameters to pass to the upstream provider.
|
||||
|
||||
[96m--[0m[96moidc-client-cert-file[0m string, [96m$CODER_OIDC_CLIENT_CERT_FILE[0m
|
||||
--oidc-client-cert-file string, $CODER_OIDC_CLIENT_CERT_FILE
|
||||
Pem encoded certificate file to use for oauth2 PKI/JWT authorization.
|
||||
The public certificate that accompanies oidc-client-key-file. A
|
||||
standard x509 certificate is expected.
|
||||
|
||||
[96m--[0m[96moidc-client-id[0m string, [96m$CODER_OIDC_CLIENT_ID[0m
|
||||
--oidc-client-id string, $CODER_OIDC_CLIENT_ID
|
||||
Client ID to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-client-key-file[0m string, [96m$CODER_OIDC_CLIENT_KEY_FILE[0m
|
||||
--oidc-client-key-file string, $CODER_OIDC_CLIENT_KEY_FILE
|
||||
Pem encoded RSA private key to use for oauth2 PKI/JWT authorization.
|
||||
This can be used instead of oidc-client-secret if your IDP supports
|
||||
it.
|
||||
|
||||
[96m--[0m[96moidc-client-secret[0m string, [96m$CODER_OIDC_CLIENT_SECRET[0m
|
||||
--oidc-client-secret string, $CODER_OIDC_CLIENT_SECRET
|
||||
Client secret to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-email-domain[0m string-array, [96m$CODER_OIDC_EMAIL_DOMAIN[0m
|
||||
--oidc-email-domain string-array, $CODER_OIDC_EMAIL_DOMAIN
|
||||
Email domains that clients logging in with OIDC must match.
|
||||
|
||||
[96m--[0m[96moidc-email-field[0m string, [96m$CODER_OIDC_EMAIL_FIELD[0m (default: email)
|
||||
--oidc-email-field string, $CODER_OIDC_EMAIL_FIELD (default: email)
|
||||
OIDC claim field to use as the email.
|
||||
|
||||
[96m--[0m[96moidc-group-field[0m string, [96m$CODER_OIDC_GROUP_FIELD[0m
|
||||
--oidc-group-field string, $CODER_OIDC_GROUP_FIELD
|
||||
This field must be set if using the group sync feature and the scope
|
||||
name is not 'groups'. Set to the claim to be used for groups.
|
||||
|
||||
[96m--[0m[96moidc-group-mapping[0m struct[map[string]string], [96m$CODER_OIDC_GROUP_MAPPING[0m (default: {})
|
||||
--oidc-group-mapping struct[map[string]string], $CODER_OIDC_GROUP_MAPPING (default: {})
|
||||
A map of OIDC group IDs and the group in Coder it should map to. This
|
||||
is useful for when OIDC providers only return group IDs.
|
||||
|
||||
[96m--[0m[96moidc-ignore-email-verified[0m bool, [96m$CODER_OIDC_IGNORE_EMAIL_VERIFIED[0m
|
||||
--oidc-ignore-email-verified bool, $CODER_OIDC_IGNORE_EMAIL_VERIFIED
|
||||
Ignore the email_verified claim from the upstream provider.
|
||||
|
||||
[96m--[0m[96moidc-ignore-userinfo[0m bool, [96m$CODER_OIDC_IGNORE_USERINFO[0m (default: false)
|
||||
--oidc-ignore-userinfo bool, $CODER_OIDC_IGNORE_USERINFO (default: false)
|
||||
Ignore the userinfo endpoint and only use the ID token for user
|
||||
information.
|
||||
|
||||
[96m--[0m[96moidc-issuer-url[0m string, [96m$CODER_OIDC_ISSUER_URL[0m
|
||||
--oidc-issuer-url string, $CODER_OIDC_ISSUER_URL
|
||||
Issuer URL to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-group-regex-filter[0m regexp, [96m$CODER_OIDC_GROUP_REGEX_FILTER[0m (default: .*)
|
||||
--oidc-group-regex-filter regexp, $CODER_OIDC_GROUP_REGEX_FILTER (default: .*)
|
||||
If provided any group name not matching the regex is ignored. This
|
||||
allows for filtering out groups that are not needed. This filter is
|
||||
applied after the group mapping.
|
||||
|
||||
[96m--[0m[96moidc-scopes[0m string-array, [96m$CODER_OIDC_SCOPES[0m (default: openid,profile,email)
|
||||
--oidc-scopes string-array, $CODER_OIDC_SCOPES (default: openid,profile,email)
|
||||
Scopes to grant when authenticating with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-user-role-default[0m string-array, [96m$CODER_OIDC_USER_ROLE_DEFAULT[0m
|
||||
--oidc-user-role-default string-array, $CODER_OIDC_USER_ROLE_DEFAULT
|
||||
If user role sync is enabled, these roles are always included for all
|
||||
authenticated users. The 'member' role is always assigned.
|
||||
|
||||
[96m--[0m[96moidc-user-role-field[0m string, [96m$CODER_OIDC_USER_ROLE_FIELD[0m
|
||||
--oidc-user-role-field string, $CODER_OIDC_USER_ROLE_FIELD
|
||||
This field must be set if using the user roles sync feature. Set this
|
||||
to the name of the claim used to store the user's role. The roles
|
||||
should be sent as an array of strings.
|
||||
|
||||
[96m--[0m[96moidc-user-role-mapping[0m struct[map[string][]string], [96m$CODER_OIDC_USER_ROLE_MAPPING[0m (default: {})
|
||||
--oidc-user-role-mapping struct[map[string][]string], $CODER_OIDC_USER_ROLE_MAPPING (default: {})
|
||||
A map of the OIDC passed in user roles and the groups in Coder it
|
||||
should map to. This is useful if the group names do not match. If
|
||||
mapped to the empty string, the role will ignored.
|
||||
|
||||
[96m--[0m[96moidc-username-field[0m string, [96m$CODER_OIDC_USERNAME_FIELD[0m (default: preferred_username)
|
||||
--oidc-username-field string, $CODER_OIDC_USERNAME_FIELD (default: preferred_username)
|
||||
OIDC claim field to use as the username.
|
||||
|
||||
[96m--[0m[96moidc-sign-in-text[0m string, [96m$CODER_OIDC_SIGN_IN_TEXT[0m (default: OpenID Connect)
|
||||
--oidc-sign-in-text string, $CODER_OIDC_SIGN_IN_TEXT (default: OpenID Connect)
|
||||
The text to show on the OpenID Connect sign in button.
|
||||
|
||||
[96m--[0m[96moidc-icon-url[0m url, [96m$CODER_OIDC_ICON_URL[0m
|
||||
--oidc-icon-url url, $CODER_OIDC_ICON_URL
|
||||
URL pointing to the icon to use on the OpenID Connect login button.
|
||||
|
||||
[93mPROVISIONING OPTIONS:[0m
|
||||
PROVISIONING OPTIONS:
|
||||
Tune the behavior of the provisioner, which is responsible for creating,
|
||||
updating, and deleting workspace resources.
|
||||
|
||||
[96m--[0m[96mprovisioner-force-cancel-interval[0m duration, [96m$CODER_PROVISIONER_FORCE_CANCEL_INTERVAL[0m (default: 10m0s)
|
||||
--provisioner-force-cancel-interval duration, $CODER_PROVISIONER_FORCE_CANCEL_INTERVAL (default: 10m0s)
|
||||
Time to force cancel provisioning tasks that are stuck.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-poll-interval[0m duration, [96m$CODER_PROVISIONER_DAEMON_POLL_INTERVAL[0m (default: 1s)
|
||||
--provisioner-daemon-poll-interval duration, $CODER_PROVISIONER_DAEMON_POLL_INTERVAL (default: 1s)
|
||||
Time to wait before polling for a new job.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-poll-jitter[0m duration, [96m$CODER_PROVISIONER_DAEMON_POLL_JITTER[0m (default: 100ms)
|
||||
--provisioner-daemon-poll-jitter duration, $CODER_PROVISIONER_DAEMON_POLL_JITTER (default: 100ms)
|
||||
Random jitter added to the poll interval.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-psk[0m string, [96m$CODER_PROVISIONER_DAEMON_PSK[0m
|
||||
--provisioner-daemon-psk string, $CODER_PROVISIONER_DAEMON_PSK
|
||||
Pre-shared key to authenticate external provisioner daemons to Coder
|
||||
server.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemons[0m int, [96m$CODER_PROVISIONER_DAEMONS[0m (default: 3)
|
||||
--provisioner-daemons int, $CODER_PROVISIONER_DAEMONS (default: 3)
|
||||
Number of provisioner daemons to create on start. If builds are stuck
|
||||
in queued state for a long time, consider increasing this.
|
||||
|
||||
[93mTELEMETRY OPTIONS:[0m
|
||||
TELEMETRY OPTIONS:
|
||||
Telemetry is critical to our ability to improve Coder. We strip all
|
||||
personalinformation before sending data to our servers. Please only disable
|
||||
telemetrywhen required by your organization's security policy.
|
||||
|
||||
[96m--[0m[96mtelemetry[0m bool, [96m$CODER_TELEMETRY_ENABLE[0m (default: false)
|
||||
--telemetry bool, $CODER_TELEMETRY_ENABLE (default: false)
|
||||
Whether telemetry is enabled or not. Coder collects anonymized usage
|
||||
data to help improve our product.
|
||||
|
||||
[93mUSER QUIET HOURS SCHEDULE OPTIONS:[0m
|
||||
USER QUIET HOURS SCHEDULE OPTIONS:
|
||||
Allow users to set quiet hours schedules each day for workspaces to avoid
|
||||
workspaces stopping during the day due to template max TTL.
|
||||
|
||||
[96m--[0m[96mdefault-quiet-hours-schedule[0m string, [96m$CODER_QUIET_HOURS_DEFAULT_SCHEDULE[0m
|
||||
--default-quiet-hours-schedule string, $CODER_QUIET_HOURS_DEFAULT_SCHEDULE
|
||||
The default daily cron schedule applied to users that haven't set a
|
||||
custom quiet hours schedule themselves. The quiet hours schedule
|
||||
determines when workspaces will be force stopped due to the template's
|
||||
|
@ -429,8 +429,8 @@ workspaces stopping during the day due to template max TTL.
|
|||
one hour and minute can be specified (ranges or comma separated values
|
||||
are not supported).
|
||||
|
||||
[93m⚠️ DANGEROUS OPTIONS:[0m
|
||||
[96m--[0m[96mdangerous-allow-path-app-sharing[0m bool, [96m$CODER_DANGEROUS_ALLOW_PATH_APP_SHARING[0m
|
||||
⚠️ DANGEROUS OPTIONS:
|
||||
--dangerous-allow-path-app-sharing bool, $CODER_DANGEROUS_ALLOW_PATH_APP_SHARING
|
||||
Allow workspace apps that are not served from subdomains to be shared.
|
||||
Path-based app sharing is DISABLED by default for security purposes.
|
||||
Path-based apps can make requests to the Coder API and pose a security
|
||||
|
@ -438,7 +438,7 @@ workspaces stopping during the day due to template max TTL.
|
|||
can be disabled entirely with --disable-path-apps for further
|
||||
security.
|
||||
|
||||
[96m--[0m[96mdangerous-allow-path-app-site-owner-access[0m bool, [96m$CODER_DANGEROUS_ALLOW_PATH_APP_SITE_OWNER_ACCESS[0m
|
||||
--dangerous-allow-path-app-site-owner-access bool, $CODER_DANGEROUS_ALLOW_PATH_APP_SITE_OWNER_ACCESS
|
||||
Allow site-owners to access workspace apps from workspaces they do not
|
||||
own. Owners cannot access path-based apps they do not own by default.
|
||||
Path-based apps can make requests to the Coder API and pose a security
|
||||
|
@ -446,17 +446,17 @@ workspaces stopping during the day due to template max TTL.
|
|||
can be disabled entirely with --disable-path-apps for further
|
||||
security.
|
||||
|
||||
[93mENTERPRISE OPTIONS:[0m
|
||||
ENTERPRISE OPTIONS:
|
||||
These options are only available in the Enterprise Edition.
|
||||
|
||||
[96m--[0m[96mbrowser-only[0m bool, [96m$CODER_BROWSER_ONLY[0m
|
||||
--browser-only bool, $CODER_BROWSER_ONLY
|
||||
Whether Coder only allows connections to workspaces via the browser.
|
||||
|
||||
[96m--[0m[96mderp-server-relay-url[0m url, [96m$CODER_DERP_SERVER_RELAY_URL[0m
|
||||
--derp-server-relay-url url, $CODER_DERP_SERVER_RELAY_URL
|
||||
An HTTP URL that is accessible by other replicas to relay DERP
|
||||
traffic. Required for high availability.
|
||||
|
||||
[96m--[0m[96mexternal-token-encryption-keys[0m string-array, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_KEYS[0m
|
||||
--external-token-encryption-keys string-array, $CODER_EXTERNAL_TOKEN_ENCRYPTION_KEYS
|
||||
Encrypt OIDC and Git authentication tokens with AES-256-GCM in the
|
||||
database. The value must be a comma-separated list of base64-encoded
|
||||
keys. Each key, when base64-decoded, must be exactly 32 bytes in
|
||||
|
@ -466,7 +466,7 @@ These options are only available in the Enterprise Edition.
|
|||
process of rotating keys with the `coder server dbcrypt rotate`
|
||||
command.
|
||||
|
||||
[96m--[0m[96mscim-auth-header[0m string, [96m$CODER_SCIM_AUTH_HEADER[0m
|
||||
--scim-auth-header string, $CODER_SCIM_AUTH_HEADER
|
||||
Enables SCIM and sets the authentication header for the built-in SCIM
|
||||
server. New users are automatically created with OIDC authentication.
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server create-admin-user [flags]
|
||||
|
||||
Create a new admin user with the given username, email and password and adds
|
||||
it to every organization.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96memail[0m string, [96m$CODER_EMAIL[0m
|
||||
OPTIONS:
|
||||
--email string, $CODER_EMAIL
|
||||
The email of the new user. If not specified, you will be prompted via
|
||||
stdin.
|
||||
|
||||
[96m--[0m[96mpassword[0m string, [96m$CODER_PASSWORD[0m
|
||||
--password string, $CODER_PASSWORD
|
||||
The password of the new user. If not specified, you will be prompted
|
||||
via stdin.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
URL of a PostgreSQL database. If empty, the built-in PostgreSQL
|
||||
deployment will be used (Coder must not be already running in this
|
||||
case).
|
||||
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
[96m--[0m[96mssh-keygen-algorithm[0m string, [96m$CODER_SSH_KEYGEN_ALGORITHM[0m (default: ed25519)
|
||||
--ssh-keygen-algorithm string, $CODER_SSH_KEYGEN_ALGORITHM (default: ed25519)
|
||||
The algorithm to use for generating ssh keys. Accepted values are
|
||||
"ed25519", "ecdsa", or "rsa4096".
|
||||
|
||||
[96m--[0m[96musername[0m string, [96m$CODER_USERNAME[0m
|
||||
--username string, $CODER_USERNAME
|
||||
The username of the new user. If not specified, you will be prompted
|
||||
via stdin.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server postgres-builtin-serve [flags]
|
||||
|
||||
Run the built-in PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
OPTIONS:
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server postgres-builtin-url [flags]
|
||||
|
||||
Output the connection URL for the built-in PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
OPTIONS:
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder show <workspace>
|
||||
|
||||
Display details of a workspace's resources and agents
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder speedtest [flags] <workspace>
|
||||
|
||||
Run upload and download tests from your machine to a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96md[0m, [96m--[0m[96mdirect[0m bool
|
||||
OPTIONS:
|
||||
-d, --direct bool
|
||||
Specifies whether to wait for a direct connection before testing
|
||||
speed.
|
||||
|
||||
[96m--[0m[96mdirection[0m up|down (default: down)
|
||||
--direction up|down (default: down)
|
||||
Specifies whether to run in reverse mode where the client receives and
|
||||
the server sends.
|
||||
|
||||
[96m-[0m[96mt[0m, [96m--[0m[96mtime[0m duration (default: 5s)
|
||||
-t, --time duration (default: 5s)
|
||||
Specifies the duration to monitor traffic.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,47 +1,47 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder ssh [flags] <workspace>
|
||||
|
||||
Start a shell into a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mA[0m, [96m--[0m[96mforward-agent[0m bool, [96m$CODER_SSH_FORWARD_AGENT[0m
|
||||
OPTIONS:
|
||||
-A, --forward-agent bool, $CODER_SSH_FORWARD_AGENT
|
||||
Specifies whether to forward the SSH agent specified in
|
||||
$SSH_AUTH_SOCK.
|
||||
|
||||
[96m-[0m[96mG[0m, [96m--[0m[96mforward-gpg[0m bool, [96m$CODER_SSH_FORWARD_GPG[0m
|
||||
-G, --forward-gpg bool, $CODER_SSH_FORWARD_GPG
|
||||
Specifies whether to forward the GPG agent. Unsupported on Windows
|
||||
workspaces, but supports all clients. Requires gnupg (gpg, gpgconf) on
|
||||
both the client and workspace. The GPG agent must already be running
|
||||
locally and will not be started for you. If a GPG agent is already
|
||||
running in the workspace, it will be attempted to be killed.
|
||||
|
||||
[96m--[0m[96midentity-agent[0m string, [96m$CODER_SSH_IDENTITY_AGENT[0m
|
||||
--identity-agent string, $CODER_SSH_IDENTITY_AGENT
|
||||
Specifies which identity agent to use (overrides $SSH_AUTH_SOCK),
|
||||
forward agent must also be enabled.
|
||||
|
||||
[96m-[0m[96ml[0m, [96m--[0m[96mlog-dir[0m string, [96m$CODER_SSH_LOG_DIR[0m
|
||||
-l, --log-dir string, $CODER_SSH_LOG_DIR
|
||||
Specify the directory containing SSH diagnostic log files.
|
||||
|
||||
[96m--[0m[96mno-wait[0m bool, [96m$CODER_SSH_NO_WAIT[0m
|
||||
--no-wait bool, $CODER_SSH_NO_WAIT
|
||||
Enter workspace immediately after the agent has connected. This is the
|
||||
default if the template has configured the agent startup script
|
||||
behavior as non-blocking.
|
||||
DEPRECATED: Use --wait instead.
|
||||
|
||||
[96m-[0m[96mR[0m, [96m--[0m[96mremote-forward[0m string, [96m$CODER_SSH_REMOTE_FORWARD[0m
|
||||
-R, --remote-forward string, $CODER_SSH_REMOTE_FORWARD
|
||||
Enable remote port forwarding (remote_port:local_address:local_port).
|
||||
|
||||
[96m--[0m[96mstdio[0m bool, [96m$CODER_SSH_STDIO[0m
|
||||
--stdio bool, $CODER_SSH_STDIO
|
||||
Specifies whether to emit SSH output over stdin/stdout.
|
||||
|
||||
[96m--[0m[96mwait[0m yes|no|auto, [96m$CODER_SSH_WAIT[0m (default: auto)
|
||||
--wait yes|no|auto, $CODER_SSH_WAIT (default: auto)
|
||||
Specifies whether or not to wait for the startup script to finish
|
||||
executing. Auto means that the agent startup script behavior
|
||||
configured in the workspace template is used.
|
||||
|
||||
[96m--[0m[96mworkspace-poll-interval[0m duration, [96m$CODER_WORKSPACE_POLL_INTERVAL[0m (default: 1m)
|
||||
--workspace-poll-interval duration, $CODER_WORKSPACE_POLL_INTERVAL (default: 1m)
|
||||
Specifies how often to poll for workspace automated shutdown.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder start [flags] <workspace>
|
||||
|
||||
Start a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mbuild-option[0m string-array, [96m$CODER_BUILD_OPTION[0m
|
||||
OPTIONS:
|
||||
--build-option string-array, $CODER_BUILD_OPTION
|
||||
Build option value in the format "name=value".
|
||||
|
||||
[96m--[0m[96mbuild-options[0m bool
|
||||
--build-options bool
|
||||
Prompt for one-time build options defined with ephemeral parameters.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder stat [flags]
|
||||
|
||||
Show resource usage for the current workspace.
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
cpu Show CPU usage, in cores.
|
||||
disk Show disk usage, in gigabytes.
|
||||
mem Show memory usage, in gigabytes.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: host_cpu,host_memory,home_disk,container_cpu,container_memory)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: host_cpu,host_memory,home_disk,container_cpu,container_memory)
|
||||
Columns to display in table output. Available columns: host cpu, host
|
||||
memory, home disk, container cpu, container memory.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder stat cpu [flags]
|
||||
|
||||
Show CPU usage, in cores.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mhost[0m bool
|
||||
OPTIONS:
|
||||
--host bool
|
||||
Force host CPU measurement.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: text)
|
||||
-o, --output string (default: text)
|
||||
Output format. Available formats: text, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder stat disk [flags]
|
||||
|
||||
Show disk usage, in gigabytes.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: text)
|
||||
OPTIONS:
|
||||
-o, --output string (default: text)
|
||||
Output format. Available formats: text, json.
|
||||
|
||||
[96m--[0m[96mpath[0m string (default: /)
|
||||
--path string (default: /)
|
||||
Path for which to check disk usage.
|
||||
|
||||
[96m--[0m[96mprefix[0m Ki|Mi|Gi|Ti (default: Gi)
|
||||
--prefix Ki|Mi|Gi|Ti (default: Gi)
|
||||
SI Prefix for disk measurement.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder stat mem [flags]
|
||||
|
||||
Show memory usage, in gigabytes.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mhost[0m bool
|
||||
OPTIONS:
|
||||
--host bool
|
||||
Force host memory measurement.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: text)
|
||||
-o, --output string (default: text)
|
||||
Output format. Available formats: text, json.
|
||||
|
||||
[96m--[0m[96mprefix[0m Ki|Mi|Gi|Ti (default: Gi)
|
||||
--prefix Ki|Mi|Gi|Ti (default: Gi)
|
||||
SI Prefix for memory measurement.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder state
|
||||
|
||||
Manually manage Terraform state to fix broken workspaces
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
pull Pull a Terraform state file from a workspace.
|
||||
push Push a Terraform state file to a workspace.
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder state pull [flags] <workspace> [file]
|
||||
|
||||
Pull a Terraform state file from a workspace.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mb[0m, [96m--[0m[96mbuild[0m int
|
||||
OPTIONS:
|
||||
-b, --build int
|
||||
Specify a workspace build to target by name. Defaults to latest.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder state push [flags] <workspace> <file>
|
||||
|
||||
Push a Terraform state file to a workspace.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mb[0m, [96m--[0m[96mbuild[0m int
|
||||
OPTIONS:
|
||||
-b, --build int
|
||||
Specify a workspace build to target by name. Defaults to latest.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder stop [flags] <workspace>
|
||||
|
||||
Stop a workspace
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
OPTIONS:
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates
|
||||
|
||||
Manage templates
|
||||
|
@ -22,7 +22,7 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder templates push my-template
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
create Create a template from the current directory or as specified by
|
||||
flag
|
||||
delete Delete templates
|
||||
|
|
|
@ -1,64 +1,64 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates create [flags] [name]
|
||||
|
||||
Create a template from the current directory or as specified by flag
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mdefault-ttl[0m duration (default: 24h)
|
||||
OPTIONS:
|
||||
--default-ttl duration (default: 24h)
|
||||
Specify a default TTL for workspaces created from this template. It is
|
||||
the default time before shutdown - workspaces created from this
|
||||
template default to this value. Maps to "Default autostop" in the UI.
|
||||
|
||||
[96m-[0m[96md[0m, [96m--[0m[96mdirectory[0m string (default: .)
|
||||
-d, --directory string (default: .)
|
||||
Specify the directory to create from, use '-' to read tar from stdin.
|
||||
|
||||
[96m--[0m[96mfailure-ttl[0m duration (default: 0h)
|
||||
--failure-ttl duration (default: 0h)
|
||||
Specify a failure TTL for workspaces created from this template. It is
|
||||
the amount of time after a failed "start" build before coder
|
||||
automatically schedules a "stop" build to cleanup.This licensed
|
||||
feature's default is 0h (off). Maps to "Failure cleanup"in the UI.
|
||||
|
||||
[96m--[0m[96mignore-lockfile[0m bool (default: false)
|
||||
--ignore-lockfile bool (default: false)
|
||||
Ignore warnings about not having a .terraform.lock.hcl file present in
|
||||
the template.
|
||||
|
||||
[96m--[0m[96minactivity-ttl[0m duration (default: 0h)
|
||||
--inactivity-ttl duration (default: 0h)
|
||||
Specify an inactivity TTL for workspaces created from this template.
|
||||
It is the amount of time the workspace is not used before it is be
|
||||
stopped and auto-locked. This includes across multiple builds (e.g.
|
||||
auto-starts and stops). This licensed feature's default is 0h (off).
|
||||
Maps to "Dormancy threshold" in the UI.
|
||||
|
||||
[96m--[0m[96mmax-ttl[0m duration
|
||||
--max-ttl duration
|
||||
Edit the template maximum time before shutdown - workspaces created
|
||||
from this template must shutdown within the given duration after
|
||||
starting. This is an enterprise-only feature.
|
||||
|
||||
[96m-[0m[96mm[0m, [96m--[0m[96mmessage[0m string
|
||||
-m, --message string
|
||||
Specify a message describing the changes in this version of the
|
||||
template. Messages longer than 72 characters will be displayed as
|
||||
truncated.
|
||||
|
||||
[96m--[0m[96mprivate[0m bool
|
||||
--private bool
|
||||
Disable the default behavior of granting template access to the
|
||||
'everyone' group. The template permissions must be updated to allow
|
||||
non-admin users to use this template.
|
||||
|
||||
[96m--[0m[96mprovisioner-tag[0m string-array
|
||||
--provisioner-tag string-array
|
||||
Specify a set of tags to target provisioner daemons.
|
||||
|
||||
[96m--[0m[96mvar[0m string-array
|
||||
--var string-array
|
||||
Alias of --variable.
|
||||
|
||||
[96m--[0m[96mvariable[0m string-array
|
||||
--variable string-array
|
||||
Specify a set of values for Terraform-managed variables.
|
||||
|
||||
[96m--[0m[96mvariables-file[0m string
|
||||
--variables-file string
|
||||
Specify a file path with values for Terraform-managed variables.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates delete [flags] [name...]
|
||||
|
||||
Delete templates
|
||||
|
||||
Aliases: rm
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
OPTIONS:
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,59 +1,59 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates edit [flags] <template>
|
||||
|
||||
Edit the metadata of a template by name.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mallow-user-autostart[0m bool (default: true)
|
||||
OPTIONS:
|
||||
--allow-user-autostart bool (default: true)
|
||||
Allow users to configure autostart for workspaces on this template.
|
||||
This can only be disabled in enterprise.
|
||||
|
||||
[96m--[0m[96mallow-user-autostop[0m bool (default: true)
|
||||
--allow-user-autostop bool (default: true)
|
||||
Allow users to customize the autostop TTL for workspaces on this
|
||||
template. This can only be disabled in enterprise.
|
||||
|
||||
[96m--[0m[96mallow-user-cancel-workspace-jobs[0m bool (default: true)
|
||||
--allow-user-cancel-workspace-jobs bool (default: true)
|
||||
Allow users to cancel in-progress workspace jobs.
|
||||
|
||||
[96m--[0m[96mdefault-ttl[0m duration
|
||||
--default-ttl duration
|
||||
Edit the template default time before shutdown - workspaces created
|
||||
from this template default to this value. Maps to "Default autostop"
|
||||
in the UI.
|
||||
|
||||
[96m--[0m[96mdescription[0m string
|
||||
--description string
|
||||
Edit the template description.
|
||||
|
||||
[96m--[0m[96mdisplay-name[0m string
|
||||
--display-name string
|
||||
Edit the template display name.
|
||||
|
||||
[96m--[0m[96mfailure-ttl[0m duration (default: 0h)
|
||||
--failure-ttl duration (default: 0h)
|
||||
Specify a failure TTL for workspaces created from this template. It is
|
||||
the amount of time after a failed "start" build before coder
|
||||
automatically schedules a "stop" build to cleanup.This licensed
|
||||
feature's default is 0h (off). Maps to "Failure cleanup" in the UI.
|
||||
|
||||
[96m--[0m[96micon[0m string
|
||||
--icon string
|
||||
Edit the template icon path.
|
||||
|
||||
[96m--[0m[96minactivity-ttl[0m duration (default: 0h)
|
||||
--inactivity-ttl duration (default: 0h)
|
||||
Specify an inactivity TTL for workspaces created from this template.
|
||||
It is the amount of time the workspace is not used before it is be
|
||||
stopped and auto-locked. This includes across multiple builds (e.g.
|
||||
auto-starts and stops). This licensed feature's default is 0h (off).
|
||||
Maps to "Dormancy threshold" in the UI.
|
||||
|
||||
[96m--[0m[96mmax-ttl[0m duration
|
||||
--max-ttl duration
|
||||
Edit the template maximum time before shutdown - workspaces created
|
||||
from this template must shutdown within the given duration after
|
||||
starting, regardless of user activity. This is an enterprise-only
|
||||
feature. Maps to "Max lifetime" in the UI.
|
||||
|
||||
[96m--[0m[96mname[0m string
|
||||
--name string
|
||||
Edit the template name.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates init [flags] [directory]
|
||||
|
||||
Get started with a templated template.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mid[0m aws-ecs-container|aws-linux|aws-windows|azure-linux|do-linux|docker|docker-with-dotfiles|fly-docker-image|gcp-linux|gcp-vm-container|gcp-windows|kubernetes
|
||||
OPTIONS:
|
||||
--id aws-ecs-container|aws-linux|aws-windows|azure-linux|do-linux|docker|docker-with-dotfiles|fly-docker-image|gcp-linux|gcp-vm-container|gcp-windows|kubernetes
|
||||
Specify a given example template by ID.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates list [flags]
|
||||
|
||||
List all the templates available for the organization
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: name,last updated,used by)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: name,last updated,used by)
|
||||
Columns to display in table output. Available columns: name, created
|
||||
at, last updated, organization id, provisioner, active version id,
|
||||
used by, default ttl.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates pull [flags] <name> [destination]
|
||||
|
||||
Download the latest version of a template to a path.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mtar[0m bool
|
||||
OPTIONS:
|
||||
--tar bool
|
||||
Output the template as a tar archive to stdout.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,50 +1,50 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates push [flags] [template]
|
||||
|
||||
Push a new template version from the current directory or as specified by flag
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mactivate[0m bool (default: true)
|
||||
OPTIONS:
|
||||
--activate bool (default: true)
|
||||
Whether the new template will be marked active.
|
||||
|
||||
[96m--[0m[96malways-prompt[0m bool
|
||||
--always-prompt bool
|
||||
Always prompt all parameters. Does not pull parameter values from
|
||||
active template version.
|
||||
|
||||
[96m--[0m[96mcreate[0m bool (default: false)
|
||||
--create bool (default: false)
|
||||
Create the template if it does not exist.
|
||||
|
||||
[96m-[0m[96md[0m, [96m--[0m[96mdirectory[0m string (default: .)
|
||||
-d, --directory string (default: .)
|
||||
Specify the directory to create from, use '-' to read tar from stdin.
|
||||
|
||||
[96m--[0m[96mignore-lockfile[0m bool (default: false)
|
||||
--ignore-lockfile bool (default: false)
|
||||
Ignore warnings about not having a .terraform.lock.hcl file present in
|
||||
the template.
|
||||
|
||||
[96m-[0m[96mm[0m, [96m--[0m[96mmessage[0m string
|
||||
-m, --message string
|
||||
Specify a message describing the changes in this version of the
|
||||
template. Messages longer than 72 characters will be displayed as
|
||||
truncated.
|
||||
|
||||
[96m--[0m[96mname[0m string
|
||||
--name string
|
||||
Specify a name for the new template version. It will be automatically
|
||||
generated if not provided.
|
||||
|
||||
[96m--[0m[96mprovisioner-tag[0m string-array
|
||||
--provisioner-tag string-array
|
||||
Specify a set of tags to target provisioner daemons.
|
||||
|
||||
[96m--[0m[96mvar[0m string-array
|
||||
--var string-array
|
||||
Alias of --variable.
|
||||
|
||||
[96m--[0m[96mvariable[0m string-array
|
||||
--variable string-array
|
||||
Specify a set of values for Terraform-managed variables.
|
||||
|
||||
[96m--[0m[96mvariables-file[0m string
|
||||
--variables-file string
|
||||
Specify a file path with values for Terraform-managed variables.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates versions
|
||||
|
||||
Manage different versions of the specified template
|
||||
|
@ -11,7 +11,7 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder templates versions list my-template
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
list List all the versions of the specified template
|
||||
|
||||
———
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder templates versions list [flags] <template>
|
||||
|
||||
List all the versions of the specified template
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: name,created at,created by,status,active)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: name,created at,created by,status,active)
|
||||
Columns to display in table output. Available columns: name, created
|
||||
at, created by, status, active.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder tokens
|
||||
|
||||
Manage personal access tokens
|
||||
|
@ -20,7 +20,7 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder tokens rm WuoWs4ZsMX
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
create Create a token
|
||||
list List tokens
|
||||
remove Delete a token
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder tokens create [flags]
|
||||
|
||||
Create a token
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mlifetime[0m duration, [96m$CODER_TOKEN_LIFETIME[0m (default: 720h0m0s)
|
||||
OPTIONS:
|
||||
--lifetime duration, $CODER_TOKEN_LIFETIME (default: 720h0m0s)
|
||||
Specify a duration for the lifetime of the token.
|
||||
|
||||
[96m-[0m[96mn[0m, [96m--[0m[96mname[0m string, [96m$CODER_TOKEN_NAME[0m
|
||||
-n, --name string, $CODER_TOKEN_NAME
|
||||
Specify a human-readable name.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder tokens list [flags]
|
||||
|
||||
List tokens
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96ma[0m, [96m--[0m[96mall[0m bool
|
||||
OPTIONS:
|
||||
-a, --all bool
|
||||
Specifies whether all users' tokens will be listed or not (must have
|
||||
Owner role to see all tokens).
|
||||
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: id,name,last used,expires at,created at)
|
||||
-c, --column string-array (default: id,name,last used,expires at,created at)
|
||||
Columns to display in table output. Available columns: id, name, last
|
||||
used, expires at, created at, owner.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder tokens remove <name>
|
||||
|
||||
Delete a token
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder update [flags] <workspace>
|
||||
|
||||
Will update and start a given workspace if it is out of date
|
||||
|
||||
Use --always-prompt to change the parameter values of the workspace.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96malways-prompt[0m bool
|
||||
OPTIONS:
|
||||
--always-prompt bool
|
||||
Always prompt all parameters. Does not pull parameter values from
|
||||
existing workspace.
|
||||
|
||||
[96m--[0m[96mbuild-option[0m string-array, [96m$CODER_BUILD_OPTION[0m
|
||||
--build-option string-array, $CODER_BUILD_OPTION
|
||||
Build option value in the format "name=value".
|
||||
|
||||
[96m--[0m[96mbuild-options[0m bool
|
||||
--build-options bool
|
||||
Prompt for one-time build options defined with ephemeral parameters.
|
||||
|
||||
[96m--[0m[96mparameter[0m string-array, [96m$CODER_RICH_PARAMETER[0m
|
||||
--parameter string-array, $CODER_RICH_PARAMETER
|
||||
Rich parameter value in the format "name=value".
|
||||
|
||||
[96m--[0m[96mrich-parameter-file[0m string, [96m$CODER_RICH_PARAMETER_FILE[0m
|
||||
--rich-parameter-file string, $CODER_RICH_PARAMETER_FILE
|
||||
Specify a file path with values for rich parameters defined in the
|
||||
template.
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users [subcommand]
|
||||
|
||||
Manage users
|
||||
|
||||
Aliases: user
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
activate Update a user's status to 'active'. Active users can fully
|
||||
interact with the platform
|
||||
create
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users activate [flags] <username|user_id>
|
||||
|
||||
Update a user's status to 'active'. Active users can fully interact with the
|
||||
|
@ -10,8 +10,8 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder users activate example_user
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: username,email,created_at,status)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: username,email,created_at,status)
|
||||
Specify a column to filter in the table.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users create [flags]
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96me[0m, [96m--[0m[96memail[0m string
|
||||
OPTIONS:
|
||||
-e, --email string
|
||||
Specifies an email address for the new user.
|
||||
|
||||
[96m--[0m[96mlogin-type[0m string
|
||||
--login-type string
|
||||
Optionally specify the login type for the user. Valid values are:
|
||||
password, none, github, oidc. Using 'none' prevents the user from
|
||||
authenticating and requires an API key/token to be generated by an
|
||||
admin.
|
||||
|
||||
[96m-[0m[96mp[0m, [96m--[0m[96mpassword[0m string
|
||||
-p, --password string
|
||||
Specifies a password for the new user.
|
||||
|
||||
[96m-[0m[96mu[0m, [96m--[0m[96musername[0m string
|
||||
-u, --username string
|
||||
Specifies a username for the new user.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users list [flags]
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: username,email,created_at,status)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: username,email,created_at,status)
|
||||
Columns to display in table output. Available columns: id, username,
|
||||
email, created at, status.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users show [flags] <username|user_id|'me'>
|
||||
|
||||
Show a single user. Use 'me' to indicate the currently authenticated user.
|
||||
|
||||
$ coder users show me
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
OPTIONS:
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder users suspend [flags] <username|user_id>
|
||||
|
||||
Update a user's status to 'suspended'. A suspended user cannot log into the
|
||||
|
@ -10,8 +10,8 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder users suspend example_user
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: username,email,created_at,status)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: username,email,created_at,status)
|
||||
Specify a column to filter in the table.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder version [flags]
|
||||
|
||||
Show coder version
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: text)
|
||||
OPTIONS:
|
||||
-o, --output string (default: text)
|
||||
Output format. Available formats: text, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder [global-flags] <subcommand>
|
||||
|
||||
Coder v0.0.0-devel — A tool for provisioning self-hosted development
|
||||
|
@ -13,49 +13,49 @@ coder v0.0.0-devel
|
|||
|
||||
$ coder templates init
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
features List Enterprise features
|
||||
groups Manage groups
|
||||
licenses Add, delete, and list licenses
|
||||
provisionerd Manage provisioner daemons
|
||||
server Start a Coder server
|
||||
|
||||
[93mGLOBAL OPTIONS:[0m
|
||||
GLOBAL OPTIONS:
|
||||
Global options are applied to all commands. They can be set using environment
|
||||
variables or flags.
|
||||
|
||||
[96m--[0m[96mdebug-options[0m bool
|
||||
--debug-options bool
|
||||
Print all options, how they're set, then exit.
|
||||
|
||||
[96m--[0m[96mdisable-direct-connections[0m bool, [96m$CODER_DISABLE_DIRECT_CONNECTIONS[0m
|
||||
--disable-direct-connections bool, $CODER_DISABLE_DIRECT_CONNECTIONS
|
||||
Disable direct (P2P) connections to workspaces.
|
||||
|
||||
[96m--[0m[96mglobal-config[0m string, [96m$CODER_CONFIG_DIR[0m (default: ~/.config/coderv2)
|
||||
--global-config string, $CODER_CONFIG_DIR (default: ~/.config/coderv2)
|
||||
Path to the global `coder` config directory.
|
||||
|
||||
[96m--[0m[96mheader[0m string-array, [96m$CODER_HEADER[0m
|
||||
--header string-array, $CODER_HEADER
|
||||
Additional HTTP headers added to all requests. Provide as key=value.
|
||||
Can be specified multiple times.
|
||||
|
||||
[96m--[0m[96mheader-command[0m string, [96m$CODER_HEADER_COMMAND[0m
|
||||
--header-command string, $CODER_HEADER_COMMAND
|
||||
An external command that outputs additional HTTP headers added to all
|
||||
requests. The command must output each header as `key=value` on its
|
||||
own line.
|
||||
|
||||
[96m--[0m[96mno-feature-warning[0m bool, [96m$CODER_NO_FEATURE_WARNING[0m
|
||||
--no-feature-warning bool, $CODER_NO_FEATURE_WARNING
|
||||
Suppress warnings about unlicensed features.
|
||||
|
||||
[96m--[0m[96mno-version-warning[0m bool, [96m$CODER_NO_VERSION_WARNING[0m
|
||||
--no-version-warning bool, $CODER_NO_VERSION_WARNING
|
||||
Suppress warning when client and server versions do not match.
|
||||
|
||||
[96m--[0m[96mtoken[0m string, [96m$CODER_SESSION_TOKEN[0m
|
||||
--token string, $CODER_SESSION_TOKEN
|
||||
Specify an authentication token. For security reasons setting
|
||||
CODER_SESSION_TOKEN is preferred.
|
||||
|
||||
[96m--[0m[96murl[0m url, [96m$CODER_URL[0m
|
||||
--url url, $CODER_URL
|
||||
URL to a deployment.
|
||||
|
||||
[96m-[0m[96mv[0m, [96m--[0m[96mverbose[0m bool, [96m$CODER_VERBOSE[0m
|
||||
-v, --verbose bool, $CODER_VERBOSE
|
||||
Enable verbose output.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder features
|
||||
|
||||
List Enterprise features
|
||||
|
||||
Aliases: feature
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
list
|
||||
|
||||
———
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder features list [flags]
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: Name,Entitlement,Enabled,Limit,Actual)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: Name,Entitlement,Enabled,Limit,Actual)
|
||||
Specify a column to filter in the table. Available columns are: Name,
|
||||
Entitlement, Enabled, Limit, Actual.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats are: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder groups
|
||||
|
||||
Manage groups
|
||||
|
||||
Aliases: group
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
create Create a user group
|
||||
delete Delete a user group
|
||||
edit Edit a user group
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder groups create [flags] <name>
|
||||
|
||||
Create a user group
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mu[0m, [96m--[0m[96mavatar-url[0m string, [96m$CODER_AVATAR_URL[0m
|
||||
OPTIONS:
|
||||
-u, --avatar-url string, $CODER_AVATAR_URL
|
||||
Set an avatar for a group.
|
||||
|
||||
[96m--[0m[96mdisplay-name[0m string, [96m$CODER_DISPLAY_NAME[0m
|
||||
--display-name string, $CODER_DISPLAY_NAME
|
||||
Optional human friendly name for the group.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder groups delete <name>
|
||||
|
||||
Delete a user group
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder groups edit [flags] <name>
|
||||
|
||||
Edit a user group
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96ma[0m, [96m--[0m[96madd-users[0m string-array
|
||||
OPTIONS:
|
||||
-a, --add-users string-array
|
||||
Add users to the group. Accepts emails or IDs.
|
||||
|
||||
[96m-[0m[96mu[0m, [96m--[0m[96mavatar-url[0m string
|
||||
-u, --avatar-url string
|
||||
Update the group avatar.
|
||||
|
||||
[96m--[0m[96mdisplay-name[0m string, [96m$CODER_DISPLAY_NAME[0m
|
||||
--display-name string, $CODER_DISPLAY_NAME
|
||||
Optional human friendly name for the group.
|
||||
|
||||
[96m-[0m[96mn[0m, [96m--[0m[96mname[0m string
|
||||
-n, --name string
|
||||
Update the group name.
|
||||
|
||||
[96m-[0m[96mr[0m, [96m--[0m[96mrm-users[0m string-array
|
||||
-r, --rm-users string-array
|
||||
Remove users to the group. Accepts emails or IDs.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder groups list [flags]
|
||||
|
||||
List user groups
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: name,display name,organization id,members,avatar url)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: name,display name,organization id,members,avatar url)
|
||||
Columns to display in table output. Available columns: name, display
|
||||
name, organization id, members, avatar url.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder licenses
|
||||
|
||||
Add, delete, and list licenses
|
||||
|
||||
Aliases: license
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
add Add license to Coder deployment
|
||||
delete Delete license by ID
|
||||
list List licenses (including expired)
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder licenses add [flags] [-f file | -l license]
|
||||
|
||||
Add license to Coder deployment
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mdebug[0m bool
|
||||
OPTIONS:
|
||||
--debug bool
|
||||
Output license claims for debugging.
|
||||
|
||||
[96m-[0m[96mf[0m, [96m--[0m[96mfile[0m string
|
||||
-f, --file string
|
||||
Load license from file.
|
||||
|
||||
[96m-[0m[96ml[0m, [96m--[0m[96mlicense[0m string
|
||||
-l, --license string
|
||||
License string.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder licenses delete <id>
|
||||
|
||||
Delete license by ID
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder licenses list [flags]
|
||||
|
||||
List licenses (including expired)
|
||||
|
||||
Aliases: ls
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcolumn[0m string-array (default: UUID,Expires At,Uploaded At,Features)
|
||||
OPTIONS:
|
||||
-c, --column string-array (default: UUID,Expires At,Uploaded At,Features)
|
||||
Columns to display in table output. Available columns: id, uuid,
|
||||
uploaded at, features, expires at, trial.
|
||||
|
||||
[96m-[0m[96mo[0m, [96m--[0m[96moutput[0m string (default: table)
|
||||
-o, --output string (default: table)
|
||||
Output format. Available formats: table, json.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder provisionerd
|
||||
|
||||
Manage provisioner daemons
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
start Run a provisioner daemon
|
||||
|
||||
———
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder provisionerd start [flags]
|
||||
|
||||
Run a provisioner daemon
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mcache-dir[0m string, [96m$CODER_CACHE_DIRECTORY[0m (default: [cache dir])
|
||||
OPTIONS:
|
||||
-c, --cache-dir string, $CODER_CACHE_DIRECTORY (default: [cache dir])
|
||||
Directory to store cached data.
|
||||
|
||||
[96m--[0m[96mpoll-interval[0m duration, [96m$CODER_PROVISIONERD_POLL_INTERVAL[0m (default: 1s)
|
||||
--poll-interval duration, $CODER_PROVISIONERD_POLL_INTERVAL (default: 1s)
|
||||
How often to poll for provisioner jobs.
|
||||
|
||||
[96m--[0m[96mpoll-jitter[0m duration, [96m$CODER_PROVISIONERD_POLL_JITTER[0m (default: 100ms)
|
||||
--poll-jitter duration, $CODER_PROVISIONERD_POLL_JITTER (default: 100ms)
|
||||
How much to jitter the poll interval by.
|
||||
|
||||
[96m--[0m[96mpsk[0m string, [96m$CODER_PROVISIONER_DAEMON_PSK[0m
|
||||
--psk string, $CODER_PROVISIONER_DAEMON_PSK
|
||||
Pre-shared key to authenticate with Coder server.
|
||||
|
||||
[96m-[0m[96mt[0m, [96m--[0m[96mtag[0m string-array, [96m$CODER_PROVISIONERD_TAGS[0m
|
||||
-t, --tag string-array, $CODER_PROVISIONERD_TAGS
|
||||
Tags to filter provisioner jobs by.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server [flags]
|
||||
|
||||
Start a Coder server
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
create-admin-user Create a new admin user with the given username,
|
||||
email and password and adds it to every
|
||||
organization.
|
||||
|
@ -14,153 +14,153 @@ coder v0.0.0-devel
|
|||
postgres-builtin-url Output the connection URL for the built-in
|
||||
PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mcache-dir[0m string, [96m$CODER_CACHE_DIRECTORY[0m (default: [cache dir])
|
||||
OPTIONS:
|
||||
--cache-dir string, $CODER_CACHE_DIRECTORY (default: [cache dir])
|
||||
The directory to cache temporary files. If unspecified and
|
||||
$CACHE_DIRECTORY is set, it will be used for compatibility with
|
||||
systemd.
|
||||
|
||||
[96m--[0m[96mdisable-owner-workspace-access[0m bool, [96m$CODER_DISABLE_OWNER_WORKSPACE_ACCESS[0m
|
||||
--disable-owner-workspace-access bool, $CODER_DISABLE_OWNER_WORKSPACE_ACCESS
|
||||
Remove the permission for the 'owner' role to have workspace execution
|
||||
on all workspaces. This prevents the 'owner' from ssh, apps, and
|
||||
terminal access based on the 'owner' role. They still have their user
|
||||
permissions to access their own workspaces.
|
||||
|
||||
[96m--[0m[96mdisable-path-apps[0m bool, [96m$CODER_DISABLE_PATH_APPS[0m
|
||||
--disable-path-apps bool, $CODER_DISABLE_PATH_APPS
|
||||
Disable workspace apps that are not served from subdomains. Path-based
|
||||
apps can make requests to the Coder API and pose a security risk when
|
||||
the workspace serves malicious JavaScript. This is recommended for
|
||||
security purposes if a --wildcard-access-url is configured.
|
||||
|
||||
[96m--[0m[96mswagger-enable[0m bool, [96m$CODER_SWAGGER_ENABLE[0m
|
||||
--swagger-enable bool, $CODER_SWAGGER_ENABLE
|
||||
Expose the swagger endpoint via /swagger.
|
||||
|
||||
[96m--[0m[96mexperiments[0m string-array, [96m$CODER_EXPERIMENTS[0m
|
||||
--experiments string-array, $CODER_EXPERIMENTS
|
||||
Enable one or more experiments. These are not ready for production.
|
||||
Separate multiple experiments with commas, or enter '*' to opt-in to
|
||||
all available experiments.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
URL of a PostgreSQL database. If empty, PostgreSQL binaries will be
|
||||
downloaded from Maven (https://repo1.maven.org/maven2) and store all
|
||||
data in the config root. Access the built-in database with "coder
|
||||
server postgres-builtin-url".
|
||||
|
||||
[96m--[0m[96mssh-keygen-algorithm[0m string, [96m$CODER_SSH_KEYGEN_ALGORITHM[0m (default: ed25519)
|
||||
--ssh-keygen-algorithm string, $CODER_SSH_KEYGEN_ALGORITHM (default: ed25519)
|
||||
The algorithm to use for generating ssh keys. Accepted values are
|
||||
"ed25519", "ecdsa", or "rsa4096".
|
||||
|
||||
[96m--[0m[96mupdate-check[0m bool, [96m$CODER_UPDATE_CHECK[0m (default: false)
|
||||
--update-check bool, $CODER_UPDATE_CHECK (default: false)
|
||||
Periodically check for new releases of Coder and inform the owner. The
|
||||
check is performed once per day.
|
||||
|
||||
[93mCLIENT OPTIONS:[0m
|
||||
CLIENT OPTIONS:
|
||||
These options change the behavior of how clients interact with the Coder.
|
||||
Clients include the coder cli, vs code extension, and the web UI.
|
||||
|
||||
[96m--[0m[96mssh-config-options[0m string-array, [96m$CODER_SSH_CONFIG_OPTIONS[0m
|
||||
--ssh-config-options string-array, $CODER_SSH_CONFIG_OPTIONS
|
||||
These SSH config options will override the default SSH config options.
|
||||
Provide options in "key=value" or "key value" format separated by
|
||||
commas.Using this incorrectly can break SSH to your deployment, use
|
||||
cautiously.
|
||||
|
||||
[96m--[0m[96mssh-hostname-prefix[0m string, [96m$CODER_SSH_HOSTNAME_PREFIX[0m (default: coder.)
|
||||
--ssh-hostname-prefix string, $CODER_SSH_HOSTNAME_PREFIX (default: coder.)
|
||||
The SSH deployment prefix is used in the Host of the ssh config.
|
||||
|
||||
[93mCONFIG OPTIONS:[0m
|
||||
CONFIG OPTIONS:
|
||||
Use a YAML configuration file when your server launch become unwieldy.
|
||||
|
||||
[96m-[0m[96mc[0m, [96m--[0m[96mconfig[0m yaml-config-path, [96m$CODER_CONFIG_PATH[0m
|
||||
-c, --config yaml-config-path, $CODER_CONFIG_PATH
|
||||
Specify a YAML file to load configuration from.
|
||||
|
||||
[96m--[0m[96mwrite-config[0m bool
|
||||
--write-config bool
|
||||
|
||||
Write out the current server config as YAML to stdout.
|
||||
|
||||
[93mINTROSPECTION / LOGGING OPTIONS:[0m
|
||||
[96m--[0m[96menable-terraform-debug-mode[0m bool, [96m$CODER_ENABLE_TERRAFORM_DEBUG_MODE[0m (default: false)
|
||||
INTROSPECTION / LOGGING OPTIONS:
|
||||
--enable-terraform-debug-mode bool, $CODER_ENABLE_TERRAFORM_DEBUG_MODE (default: false)
|
||||
Allow administrators to enable Terraform debug output.
|
||||
|
||||
[96m--[0m[96mlog-human[0m string, [96m$CODER_LOGGING_HUMAN[0m (default: /dev/stderr)
|
||||
--log-human string, $CODER_LOGGING_HUMAN (default: /dev/stderr)
|
||||
Output human-readable logs to a given file.
|
||||
|
||||
[96m--[0m[96mlog-json[0m string, [96m$CODER_LOGGING_JSON[0m
|
||||
--log-json string, $CODER_LOGGING_JSON
|
||||
Output JSON logs to a given file.
|
||||
|
||||
[96m-[0m[96ml[0m, [96m--[0m[96mlog-filter[0m string-array, [96m$CODER_LOG_FILTER[0m
|
||||
-l, --log-filter string-array, $CODER_LOG_FILTER
|
||||
Filter debug logs by matching against a given regex. Use .* to match
|
||||
all debug logs.
|
||||
|
||||
[96m--[0m[96mlog-stackdriver[0m string, [96m$CODER_LOGGING_STACKDRIVER[0m
|
||||
--log-stackdriver string, $CODER_LOGGING_STACKDRIVER
|
||||
Output Stackdriver compatible logs to a given file.
|
||||
|
||||
[93mINTROSPECTION / PROMETHEUS OPTIONS:[0m
|
||||
[96m--[0m[96mprometheus-address[0m host:port, [96m$CODER_PROMETHEUS_ADDRESS[0m (default: 127.0.0.1:2112)
|
||||
INTROSPECTION / PROMETHEUS OPTIONS:
|
||||
--prometheus-address host:port, $CODER_PROMETHEUS_ADDRESS (default: 127.0.0.1:2112)
|
||||
The bind address to serve prometheus metrics.
|
||||
|
||||
[96m--[0m[96mprometheus-collect-agent-stats[0m bool, [96m$CODER_PROMETHEUS_COLLECT_AGENT_STATS[0m
|
||||
--prometheus-collect-agent-stats bool, $CODER_PROMETHEUS_COLLECT_AGENT_STATS
|
||||
Collect agent stats (may increase charges for metrics storage).
|
||||
|
||||
[96m--[0m[96mprometheus-collect-db-metrics[0m bool, [96m$CODER_PROMETHEUS_COLLECT_DB_METRICS[0m (default: false)
|
||||
--prometheus-collect-db-metrics bool, $CODER_PROMETHEUS_COLLECT_DB_METRICS (default: false)
|
||||
Collect database metrics (may increase charges for metrics storage).
|
||||
|
||||
[96m--[0m[96mprometheus-enable[0m bool, [96m$CODER_PROMETHEUS_ENABLE[0m
|
||||
--prometheus-enable bool, $CODER_PROMETHEUS_ENABLE
|
||||
Serve prometheus metrics on the address defined by prometheus address.
|
||||
|
||||
[93mINTROSPECTION / TRACING OPTIONS:[0m
|
||||
[96m--[0m[96mtrace-logs[0m bool, [96m$CODER_TRACE_LOGS[0m
|
||||
INTROSPECTION / TRACING OPTIONS:
|
||||
--trace-logs bool, $CODER_TRACE_LOGS
|
||||
Enables capturing of logs as events in traces. This is useful for
|
||||
debugging, but may result in a very large amount of events being sent
|
||||
to the tracing backend which may incur significant costs.
|
||||
|
||||
[96m--[0m[96mtrace[0m bool, [96m$CODER_TRACE_ENABLE[0m
|
||||
--trace bool, $CODER_TRACE_ENABLE
|
||||
Whether application tracing data is collected. It exports to a backend
|
||||
configured by environment variables. See:
|
||||
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md.
|
||||
|
||||
[96m--[0m[96mtrace-honeycomb-api-key[0m string, [96m$CODER_TRACE_HONEYCOMB_API_KEY[0m
|
||||
--trace-honeycomb-api-key string, $CODER_TRACE_HONEYCOMB_API_KEY
|
||||
Enables trace exporting to Honeycomb.io using the provided API Key.
|
||||
|
||||
[93mINTROSPECTION / PPROF OPTIONS:[0m
|
||||
[96m--[0m[96mpprof-address[0m host:port, [96m$CODER_PPROF_ADDRESS[0m (default: 127.0.0.1:6060)
|
||||
INTROSPECTION / PPROF OPTIONS:
|
||||
--pprof-address host:port, $CODER_PPROF_ADDRESS (default: 127.0.0.1:6060)
|
||||
The bind address to serve pprof.
|
||||
|
||||
[96m--[0m[96mpprof-enable[0m bool, [96m$CODER_PPROF_ENABLE[0m
|
||||
--pprof-enable bool, $CODER_PPROF_ENABLE
|
||||
Serve pprof metrics on the address defined by pprof address.
|
||||
|
||||
[93mNETWORKING OPTIONS:[0m
|
||||
[96m--[0m[96maccess-url[0m url, [96m$CODER_ACCESS_URL[0m
|
||||
NETWORKING OPTIONS:
|
||||
--access-url url, $CODER_ACCESS_URL
|
||||
The URL that users will use to access the Coder deployment.
|
||||
|
||||
[96m--[0m[96mdocs-url[0m url, [96m$CODER_DOCS_URL[0m
|
||||
--docs-url url, $CODER_DOCS_URL
|
||||
Specifies the custom docs URL.
|
||||
|
||||
[96m--[0m[96mproxy-trusted-headers[0m string-array, [96m$CODER_PROXY_TRUSTED_HEADERS[0m
|
||||
--proxy-trusted-headers string-array, $CODER_PROXY_TRUSTED_HEADERS
|
||||
Headers to trust for forwarding IP addresses. e.g. Cf-Connecting-Ip,
|
||||
True-Client-Ip, X-Forwarded-For.
|
||||
|
||||
[96m--[0m[96mproxy-trusted-origins[0m string-array, [96m$CODER_PROXY_TRUSTED_ORIGINS[0m
|
||||
--proxy-trusted-origins string-array, $CODER_PROXY_TRUSTED_ORIGINS
|
||||
Origin addresses to respect "proxy-trusted-headers". e.g.
|
||||
192.168.1.0/24.
|
||||
|
||||
[96m--[0m[96mredirect-to-access-url[0m bool, [96m$CODER_REDIRECT_TO_ACCESS_URL[0m
|
||||
--redirect-to-access-url bool, $CODER_REDIRECT_TO_ACCESS_URL
|
||||
Specifies whether to redirect requests that do not match the access
|
||||
URL host.
|
||||
|
||||
[96m--[0m[96msecure-auth-cookie[0m bool, [96m$CODER_SECURE_AUTH_COOKIE[0m
|
||||
--secure-auth-cookie bool, $CODER_SECURE_AUTH_COOKIE
|
||||
Controls if the 'Secure' property is set on browser session cookies.
|
||||
|
||||
[96m--[0m[96mwildcard-access-url[0m url, [96m$CODER_WILDCARD_ACCESS_URL[0m
|
||||
--wildcard-access-url url, $CODER_WILDCARD_ACCESS_URL
|
||||
Specifies the wildcard hostname to use for workspace applications in
|
||||
the form "*.example.com".
|
||||
|
||||
[93mNETWORKING / DERP OPTIONS:[0m
|
||||
NETWORKING / DERP OPTIONS:
|
||||
Most Coder deployments never have to think about DERP because all connections
|
||||
between workspaces and users are peer-to-peer. However, when Coder cannot
|
||||
establish a peer to peer connection, Coder uses a distributed relay network
|
||||
backed by Tailscale and WireGuard.
|
||||
|
||||
[96m--[0m[96mblock-direct-connections[0m bool, [96m$CODER_BLOCK_DIRECT[0m
|
||||
--block-direct-connections bool, $CODER_BLOCK_DIRECT
|
||||
Block peer-to-peer (aka. direct) workspace connections. All workspace
|
||||
connections from the CLI will be proxied through Coder (or custom
|
||||
configured DERP servers) and will never be peer-to-peer when enabled.
|
||||
|
@ -168,36 +168,36 @@ backed by Tailscale and WireGuard.
|
|||
until they are restarted after this change has been made, but new
|
||||
connections will still be proxied regardless.
|
||||
|
||||
[96m--[0m[96mderp-config-path[0m string, [96m$CODER_DERP_CONFIG_PATH[0m
|
||||
--derp-config-path string, $CODER_DERP_CONFIG_PATH
|
||||
Path to read a DERP mapping from. See:
|
||||
https://tailscale.com/kb/1118/custom-derp-servers/.
|
||||
|
||||
[96m--[0m[96mderp-config-url[0m string, [96m$CODER_DERP_CONFIG_URL[0m
|
||||
--derp-config-url string, $CODER_DERP_CONFIG_URL
|
||||
URL to fetch a DERP mapping on startup. See:
|
||||
https://tailscale.com/kb/1118/custom-derp-servers/.
|
||||
|
||||
[96m--[0m[96mderp-force-websockets[0m bool, [96m$CODER_DERP_FORCE_WEBSOCKETS[0m
|
||||
--derp-force-websockets bool, $CODER_DERP_FORCE_WEBSOCKETS
|
||||
Force clients and agents to always use WebSocket to connect to DERP
|
||||
relay servers. By default, DERP uses `Upgrade: derp`, which may cause
|
||||
issues with some reverse proxies. Clients may automatically fallback
|
||||
to WebSocket if they detect an issue with `Upgrade: derp`, but this
|
||||
does not work in all situations.
|
||||
|
||||
[96m--[0m[96mderp-server-enable[0m bool, [96m$CODER_DERP_SERVER_ENABLE[0m (default: true)
|
||||
--derp-server-enable bool, $CODER_DERP_SERVER_ENABLE (default: true)
|
||||
Whether to enable or disable the embedded DERP relay server.
|
||||
|
||||
[96m--[0m[96mderp-server-region-name[0m string, [96m$CODER_DERP_SERVER_REGION_NAME[0m (default: Coder Embedded Relay)
|
||||
--derp-server-region-name string, $CODER_DERP_SERVER_REGION_NAME (default: Coder Embedded Relay)
|
||||
Region name that for the embedded DERP server.
|
||||
|
||||
[96m--[0m[96mderp-server-stun-addresses[0m string-array, [96m$CODER_DERP_SERVER_STUN_ADDRESSES[0m (default: stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302,stun3.l.google.com:19302,stun4.l.google.com:19302)
|
||||
--derp-server-stun-addresses string-array, $CODER_DERP_SERVER_STUN_ADDRESSES (default: stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302,stun3.l.google.com:19302,stun4.l.google.com:19302)
|
||||
Addresses for STUN servers to establish P2P connections. It's
|
||||
recommended to have at least two STUN servers to give users the best
|
||||
chance of connecting P2P to workspaces. Each STUN server will get it's
|
||||
own DERP region, with region IDs starting at `--derp-server-region-id
|
||||
+ 1`. Use special value 'disable' to turn off STUN completely.
|
||||
|
||||
[93mNETWORKING / HTTP OPTIONS:[0m
|
||||
[96m--[0m[96mdisable-password-auth[0m bool, [96m$CODER_DISABLE_PASSWORD_AUTH[0m
|
||||
NETWORKING / HTTP OPTIONS:
|
||||
--disable-password-auth bool, $CODER_DISABLE_PASSWORD_AUTH
|
||||
Disable password authentication. This is recommended for security
|
||||
purposes in production deployments that rely on an identity provider.
|
||||
Any user with the owner role will be able to sign in with their
|
||||
|
@ -206,221 +206,221 @@ backed by Tailscale and WireGuard.
|
|||
create-admin` command to create a new admin user directly in the
|
||||
database.
|
||||
|
||||
[96m--[0m[96mdisable-session-expiry-refresh[0m bool, [96m$CODER_DISABLE_SESSION_EXPIRY_REFRESH[0m
|
||||
--disable-session-expiry-refresh bool, $CODER_DISABLE_SESSION_EXPIRY_REFRESH
|
||||
Disable automatic session expiry bumping due to activity. This forces
|
||||
all sessions to become invalid after the session expiry duration has
|
||||
been reached.
|
||||
|
||||
[96m--[0m[96mhttp-address[0m string, [96m$CODER_HTTP_ADDRESS[0m (default: 127.0.0.1:3000)
|
||||
--http-address string, $CODER_HTTP_ADDRESS (default: 127.0.0.1:3000)
|
||||
HTTP bind address of the server. Unset to disable the HTTP endpoint.
|
||||
|
||||
[96m--[0m[96mmax-token-lifetime[0m duration, [96m$CODER_MAX_TOKEN_LIFETIME[0m (default: 876600h0m0s)
|
||||
--max-token-lifetime duration, $CODER_MAX_TOKEN_LIFETIME (default: 876600h0m0s)
|
||||
The maximum lifetime duration users can specify when creating an API
|
||||
token.
|
||||
|
||||
[96m--[0m[96mproxy-health-interval[0m duration, [96m$CODER_PROXY_HEALTH_INTERVAL[0m (default: 1m0s)
|
||||
--proxy-health-interval duration, $CODER_PROXY_HEALTH_INTERVAL (default: 1m0s)
|
||||
The interval in which coderd should be checking the status of
|
||||
workspace proxies.
|
||||
|
||||
[96m--[0m[96msession-duration[0m duration, [96m$CODER_SESSION_DURATION[0m (default: 24h0m0s)
|
||||
--session-duration duration, $CODER_SESSION_DURATION (default: 24h0m0s)
|
||||
The token expiry duration for browser sessions. Sessions may last
|
||||
longer if they are actively making requests, but this functionality
|
||||
can be disabled via --disable-session-expiry-refresh.
|
||||
|
||||
[93mNETWORKING / TLS OPTIONS:[0m
|
||||
NETWORKING / TLS OPTIONS:
|
||||
Configure TLS / HTTPS for your Coder deployment. If you're running Coder behind
|
||||
a TLS-terminating reverse proxy or are accessing Coder over a secure link, you
|
||||
can safely ignore these settings.
|
||||
|
||||
[96m--[0m[96mstrict-transport-security[0m int, [96m$CODER_STRICT_TRANSPORT_SECURITY[0m (default: 0)
|
||||
--strict-transport-security int, $CODER_STRICT_TRANSPORT_SECURITY (default: 0)
|
||||
Controls if the 'Strict-Transport-Security' header is set on all
|
||||
static file responses. This header should only be set if the server is
|
||||
accessed via HTTPS. This value is the MaxAge in seconds of the header.
|
||||
|
||||
[96m--[0m[96mstrict-transport-security-options[0m string-array, [96m$CODER_STRICT_TRANSPORT_SECURITY_OPTIONS[0m
|
||||
--strict-transport-security-options string-array, $CODER_STRICT_TRANSPORT_SECURITY_OPTIONS
|
||||
Two optional fields can be set in the Strict-Transport-Security
|
||||
header; 'includeSubDomains' and 'preload'. The
|
||||
'strict-transport-security' flag must be set to a non-zero value for
|
||||
these options to be used.
|
||||
|
||||
[96m--[0m[96mtls-address[0m host:port, [96m$CODER_TLS_ADDRESS[0m (default: 127.0.0.1:3443)
|
||||
--tls-address host:port, $CODER_TLS_ADDRESS (default: 127.0.0.1:3443)
|
||||
HTTPS bind address of the server.
|
||||
|
||||
[96m--[0m[96mtls-cert-file[0m string-array, [96m$CODER_TLS_CERT_FILE[0m
|
||||
--tls-cert-file string-array, $CODER_TLS_CERT_FILE
|
||||
Path to each certificate for TLS. It requires a PEM-encoded file. To
|
||||
configure the listener to use a CA certificate, concatenate the
|
||||
primary certificate and the CA certificate together. The primary
|
||||
certificate should appear first in the combined file.
|
||||
|
||||
[96m--[0m[96mtls-client-auth[0m string, [96m$CODER_TLS_CLIENT_AUTH[0m (default: none)
|
||||
--tls-client-auth string, $CODER_TLS_CLIENT_AUTH (default: none)
|
||||
Policy the server will follow for TLS Client Authentication. Accepted
|
||||
values are "none", "request", "require-any", "verify-if-given", or
|
||||
"require-and-verify".
|
||||
|
||||
[96m--[0m[96mtls-client-ca-file[0m string, [96m$CODER_TLS_CLIENT_CA_FILE[0m
|
||||
--tls-client-ca-file string, $CODER_TLS_CLIENT_CA_FILE
|
||||
PEM-encoded Certificate Authority file used for checking the
|
||||
authenticity of client.
|
||||
|
||||
[96m--[0m[96mtls-client-cert-file[0m string, [96m$CODER_TLS_CLIENT_CERT_FILE[0m
|
||||
--tls-client-cert-file string, $CODER_TLS_CLIENT_CERT_FILE
|
||||
Path to certificate for client TLS authentication. It requires a
|
||||
PEM-encoded file.
|
||||
|
||||
[96m--[0m[96mtls-client-key-file[0m string, [96m$CODER_TLS_CLIENT_KEY_FILE[0m
|
||||
--tls-client-key-file string, $CODER_TLS_CLIENT_KEY_FILE
|
||||
Path to key for client TLS authentication. It requires a PEM-encoded
|
||||
file.
|
||||
|
||||
[96m--[0m[96mtls-enable[0m bool, [96m$CODER_TLS_ENABLE[0m
|
||||
--tls-enable bool, $CODER_TLS_ENABLE
|
||||
Whether TLS will be enabled.
|
||||
|
||||
[96m--[0m[96mtls-key-file[0m string-array, [96m$CODER_TLS_KEY_FILE[0m
|
||||
--tls-key-file string-array, $CODER_TLS_KEY_FILE
|
||||
Paths to the private keys for each of the certificates. It requires a
|
||||
PEM-encoded file.
|
||||
|
||||
[96m--[0m[96mtls-min-version[0m string, [96m$CODER_TLS_MIN_VERSION[0m (default: tls12)
|
||||
--tls-min-version string, $CODER_TLS_MIN_VERSION (default: tls12)
|
||||
Minimum supported version of TLS. Accepted values are "tls10",
|
||||
"tls11", "tls12" or "tls13".
|
||||
|
||||
[93mOAUTH2 / GITHUB OPTIONS:[0m
|
||||
[96m--[0m[96moauth2-github-allow-everyone[0m bool, [96m$CODER_OAUTH2_GITHUB_ALLOW_EVERYONE[0m
|
||||
OAUTH2 / GITHUB OPTIONS:
|
||||
--oauth2-github-allow-everyone bool, $CODER_OAUTH2_GITHUB_ALLOW_EVERYONE
|
||||
Allow all logins, setting this option means allowed orgs and teams
|
||||
must be empty.
|
||||
|
||||
[96m--[0m[96moauth2-github-allow-signups[0m bool, [96m$CODER_OAUTH2_GITHUB_ALLOW_SIGNUPS[0m
|
||||
--oauth2-github-allow-signups bool, $CODER_OAUTH2_GITHUB_ALLOW_SIGNUPS
|
||||
Whether new users can sign up with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-allowed-orgs[0m string-array, [96m$CODER_OAUTH2_GITHUB_ALLOWED_ORGS[0m
|
||||
--oauth2-github-allowed-orgs string-array, $CODER_OAUTH2_GITHUB_ALLOWED_ORGS
|
||||
Organizations the user must be a member of to Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-allowed-teams[0m string-array, [96m$CODER_OAUTH2_GITHUB_ALLOWED_TEAMS[0m
|
||||
--oauth2-github-allowed-teams string-array, $CODER_OAUTH2_GITHUB_ALLOWED_TEAMS
|
||||
Teams inside organizations the user must be a member of to Login with
|
||||
GitHub. Structured as: <organization-name>/<team-slug>.
|
||||
|
||||
[96m--[0m[96moauth2-github-client-id[0m string, [96m$CODER_OAUTH2_GITHUB_CLIENT_ID[0m
|
||||
--oauth2-github-client-id string, $CODER_OAUTH2_GITHUB_CLIENT_ID
|
||||
Client ID for Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-client-secret[0m string, [96m$CODER_OAUTH2_GITHUB_CLIENT_SECRET[0m
|
||||
--oauth2-github-client-secret string, $CODER_OAUTH2_GITHUB_CLIENT_SECRET
|
||||
Client secret for Login with GitHub.
|
||||
|
||||
[96m--[0m[96moauth2-github-enterprise-base-url[0m string, [96m$CODER_OAUTH2_GITHUB_ENTERPRISE_BASE_URL[0m
|
||||
--oauth2-github-enterprise-base-url string, $CODER_OAUTH2_GITHUB_ENTERPRISE_BASE_URL
|
||||
Base URL of a GitHub Enterprise deployment to use for Login with
|
||||
GitHub.
|
||||
|
||||
[93mOIDC OPTIONS:[0m
|
||||
[96m--[0m[96moidc-group-auto-create[0m bool, [96m$CODER_OIDC_GROUP_AUTO_CREATE[0m (default: false)
|
||||
OIDC OPTIONS:
|
||||
--oidc-group-auto-create bool, $CODER_OIDC_GROUP_AUTO_CREATE (default: false)
|
||||
Automatically creates missing groups from a user's groups claim.
|
||||
|
||||
[96m--[0m[96moidc-allow-signups[0m bool, [96m$CODER_OIDC_ALLOW_SIGNUPS[0m (default: true)
|
||||
--oidc-allow-signups bool, $CODER_OIDC_ALLOW_SIGNUPS (default: true)
|
||||
Whether new users can sign up with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-auth-url-params[0m struct[map[string]string], [96m$CODER_OIDC_AUTH_URL_PARAMS[0m (default: {"access_type": "offline"})
|
||||
--oidc-auth-url-params struct[map[string]string], $CODER_OIDC_AUTH_URL_PARAMS (default: {"access_type": "offline"})
|
||||
OIDC auth URL parameters to pass to the upstream provider.
|
||||
|
||||
[96m--[0m[96moidc-client-cert-file[0m string, [96m$CODER_OIDC_CLIENT_CERT_FILE[0m
|
||||
--oidc-client-cert-file string, $CODER_OIDC_CLIENT_CERT_FILE
|
||||
Pem encoded certificate file to use for oauth2 PKI/JWT authorization.
|
||||
The public certificate that accompanies oidc-client-key-file. A
|
||||
standard x509 certificate is expected.
|
||||
|
||||
[96m--[0m[96moidc-client-id[0m string, [96m$CODER_OIDC_CLIENT_ID[0m
|
||||
--oidc-client-id string, $CODER_OIDC_CLIENT_ID
|
||||
Client ID to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-client-key-file[0m string, [96m$CODER_OIDC_CLIENT_KEY_FILE[0m
|
||||
--oidc-client-key-file string, $CODER_OIDC_CLIENT_KEY_FILE
|
||||
Pem encoded RSA private key to use for oauth2 PKI/JWT authorization.
|
||||
This can be used instead of oidc-client-secret if your IDP supports
|
||||
it.
|
||||
|
||||
[96m--[0m[96moidc-client-secret[0m string, [96m$CODER_OIDC_CLIENT_SECRET[0m
|
||||
--oidc-client-secret string, $CODER_OIDC_CLIENT_SECRET
|
||||
Client secret to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-email-domain[0m string-array, [96m$CODER_OIDC_EMAIL_DOMAIN[0m
|
||||
--oidc-email-domain string-array, $CODER_OIDC_EMAIL_DOMAIN
|
||||
Email domains that clients logging in with OIDC must match.
|
||||
|
||||
[96m--[0m[96moidc-email-field[0m string, [96m$CODER_OIDC_EMAIL_FIELD[0m (default: email)
|
||||
--oidc-email-field string, $CODER_OIDC_EMAIL_FIELD (default: email)
|
||||
OIDC claim field to use as the email.
|
||||
|
||||
[96m--[0m[96moidc-group-field[0m string, [96m$CODER_OIDC_GROUP_FIELD[0m
|
||||
--oidc-group-field string, $CODER_OIDC_GROUP_FIELD
|
||||
This field must be set if using the group sync feature and the scope
|
||||
name is not 'groups'. Set to the claim to be used for groups.
|
||||
|
||||
[96m--[0m[96moidc-group-mapping[0m struct[map[string]string], [96m$CODER_OIDC_GROUP_MAPPING[0m (default: {})
|
||||
--oidc-group-mapping struct[map[string]string], $CODER_OIDC_GROUP_MAPPING (default: {})
|
||||
A map of OIDC group IDs and the group in Coder it should map to. This
|
||||
is useful for when OIDC providers only return group IDs.
|
||||
|
||||
[96m--[0m[96moidc-ignore-email-verified[0m bool, [96m$CODER_OIDC_IGNORE_EMAIL_VERIFIED[0m
|
||||
--oidc-ignore-email-verified bool, $CODER_OIDC_IGNORE_EMAIL_VERIFIED
|
||||
Ignore the email_verified claim from the upstream provider.
|
||||
|
||||
[96m--[0m[96moidc-ignore-userinfo[0m bool, [96m$CODER_OIDC_IGNORE_USERINFO[0m (default: false)
|
||||
--oidc-ignore-userinfo bool, $CODER_OIDC_IGNORE_USERINFO (default: false)
|
||||
Ignore the userinfo endpoint and only use the ID token for user
|
||||
information.
|
||||
|
||||
[96m--[0m[96moidc-issuer-url[0m string, [96m$CODER_OIDC_ISSUER_URL[0m
|
||||
--oidc-issuer-url string, $CODER_OIDC_ISSUER_URL
|
||||
Issuer URL to use for Login with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-group-regex-filter[0m regexp, [96m$CODER_OIDC_GROUP_REGEX_FILTER[0m (default: .*)
|
||||
--oidc-group-regex-filter regexp, $CODER_OIDC_GROUP_REGEX_FILTER (default: .*)
|
||||
If provided any group name not matching the regex is ignored. This
|
||||
allows for filtering out groups that are not needed. This filter is
|
||||
applied after the group mapping.
|
||||
|
||||
[96m--[0m[96moidc-scopes[0m string-array, [96m$CODER_OIDC_SCOPES[0m (default: openid,profile,email)
|
||||
--oidc-scopes string-array, $CODER_OIDC_SCOPES (default: openid,profile,email)
|
||||
Scopes to grant when authenticating with OIDC.
|
||||
|
||||
[96m--[0m[96moidc-user-role-default[0m string-array, [96m$CODER_OIDC_USER_ROLE_DEFAULT[0m
|
||||
--oidc-user-role-default string-array, $CODER_OIDC_USER_ROLE_DEFAULT
|
||||
If user role sync is enabled, these roles are always included for all
|
||||
authenticated users. The 'member' role is always assigned.
|
||||
|
||||
[96m--[0m[96moidc-user-role-field[0m string, [96m$CODER_OIDC_USER_ROLE_FIELD[0m
|
||||
--oidc-user-role-field string, $CODER_OIDC_USER_ROLE_FIELD
|
||||
This field must be set if using the user roles sync feature. Set this
|
||||
to the name of the claim used to store the user's role. The roles
|
||||
should be sent as an array of strings.
|
||||
|
||||
[96m--[0m[96moidc-user-role-mapping[0m struct[map[string][]string], [96m$CODER_OIDC_USER_ROLE_MAPPING[0m (default: {})
|
||||
--oidc-user-role-mapping struct[map[string][]string], $CODER_OIDC_USER_ROLE_MAPPING (default: {})
|
||||
A map of the OIDC passed in user roles and the groups in Coder it
|
||||
should map to. This is useful if the group names do not match. If
|
||||
mapped to the empty string, the role will ignored.
|
||||
|
||||
[96m--[0m[96moidc-username-field[0m string, [96m$CODER_OIDC_USERNAME_FIELD[0m (default: preferred_username)
|
||||
--oidc-username-field string, $CODER_OIDC_USERNAME_FIELD (default: preferred_username)
|
||||
OIDC claim field to use as the username.
|
||||
|
||||
[96m--[0m[96moidc-sign-in-text[0m string, [96m$CODER_OIDC_SIGN_IN_TEXT[0m (default: OpenID Connect)
|
||||
--oidc-sign-in-text string, $CODER_OIDC_SIGN_IN_TEXT (default: OpenID Connect)
|
||||
The text to show on the OpenID Connect sign in button.
|
||||
|
||||
[96m--[0m[96moidc-icon-url[0m url, [96m$CODER_OIDC_ICON_URL[0m
|
||||
--oidc-icon-url url, $CODER_OIDC_ICON_URL
|
||||
URL pointing to the icon to use on the OpenID Connect login button.
|
||||
|
||||
[93mPROVISIONING OPTIONS:[0m
|
||||
PROVISIONING OPTIONS:
|
||||
Tune the behavior of the provisioner, which is responsible for creating,
|
||||
updating, and deleting workspace resources.
|
||||
|
||||
[96m--[0m[96mprovisioner-force-cancel-interval[0m duration, [96m$CODER_PROVISIONER_FORCE_CANCEL_INTERVAL[0m (default: 10m0s)
|
||||
--provisioner-force-cancel-interval duration, $CODER_PROVISIONER_FORCE_CANCEL_INTERVAL (default: 10m0s)
|
||||
Time to force cancel provisioning tasks that are stuck.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-poll-interval[0m duration, [96m$CODER_PROVISIONER_DAEMON_POLL_INTERVAL[0m (default: 1s)
|
||||
--provisioner-daemon-poll-interval duration, $CODER_PROVISIONER_DAEMON_POLL_INTERVAL (default: 1s)
|
||||
Time to wait before polling for a new job.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-poll-jitter[0m duration, [96m$CODER_PROVISIONER_DAEMON_POLL_JITTER[0m (default: 100ms)
|
||||
--provisioner-daemon-poll-jitter duration, $CODER_PROVISIONER_DAEMON_POLL_JITTER (default: 100ms)
|
||||
Random jitter added to the poll interval.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemon-psk[0m string, [96m$CODER_PROVISIONER_DAEMON_PSK[0m
|
||||
--provisioner-daemon-psk string, $CODER_PROVISIONER_DAEMON_PSK
|
||||
Pre-shared key to authenticate external provisioner daemons to Coder
|
||||
server.
|
||||
|
||||
[96m--[0m[96mprovisioner-daemons[0m int, [96m$CODER_PROVISIONER_DAEMONS[0m (default: 3)
|
||||
--provisioner-daemons int, $CODER_PROVISIONER_DAEMONS (default: 3)
|
||||
Number of provisioner daemons to create on start. If builds are stuck
|
||||
in queued state for a long time, consider increasing this.
|
||||
|
||||
[93mTELEMETRY OPTIONS:[0m
|
||||
TELEMETRY OPTIONS:
|
||||
Telemetry is critical to our ability to improve Coder. We strip all
|
||||
personalinformation before sending data to our servers. Please only disable
|
||||
telemetrywhen required by your organization's security policy.
|
||||
|
||||
[96m--[0m[96mtelemetry[0m bool, [96m$CODER_TELEMETRY_ENABLE[0m (default: false)
|
||||
--telemetry bool, $CODER_TELEMETRY_ENABLE (default: false)
|
||||
Whether telemetry is enabled or not. Coder collects anonymized usage
|
||||
data to help improve our product.
|
||||
|
||||
[93mUSER QUIET HOURS SCHEDULE OPTIONS:[0m
|
||||
USER QUIET HOURS SCHEDULE OPTIONS:
|
||||
Allow users to set quiet hours schedules each day for workspaces to avoid
|
||||
workspaces stopping during the day due to template max TTL.
|
||||
|
||||
[96m--[0m[96mdefault-quiet-hours-schedule[0m string, [96m$CODER_QUIET_HOURS_DEFAULT_SCHEDULE[0m
|
||||
--default-quiet-hours-schedule string, $CODER_QUIET_HOURS_DEFAULT_SCHEDULE
|
||||
The default daily cron schedule applied to users that haven't set a
|
||||
custom quiet hours schedule themselves. The quiet hours schedule
|
||||
determines when workspaces will be force stopped due to the template's
|
||||
|
@ -430,8 +430,8 @@ workspaces stopping during the day due to template max TTL.
|
|||
one hour and minute can be specified (ranges or comma separated values
|
||||
are not supported).
|
||||
|
||||
[93m⚠️ DANGEROUS OPTIONS:[0m
|
||||
[96m--[0m[96mdangerous-allow-path-app-sharing[0m bool, [96m$CODER_DANGEROUS_ALLOW_PATH_APP_SHARING[0m
|
||||
⚠️ DANGEROUS OPTIONS:
|
||||
--dangerous-allow-path-app-sharing bool, $CODER_DANGEROUS_ALLOW_PATH_APP_SHARING
|
||||
Allow workspace apps that are not served from subdomains to be shared.
|
||||
Path-based app sharing is DISABLED by default for security purposes.
|
||||
Path-based apps can make requests to the Coder API and pose a security
|
||||
|
@ -439,7 +439,7 @@ workspaces stopping during the day due to template max TTL.
|
|||
can be disabled entirely with --disable-path-apps for further
|
||||
security.
|
||||
|
||||
[96m--[0m[96mdangerous-allow-path-app-site-owner-access[0m bool, [96m$CODER_DANGEROUS_ALLOW_PATH_APP_SITE_OWNER_ACCESS[0m
|
||||
--dangerous-allow-path-app-site-owner-access bool, $CODER_DANGEROUS_ALLOW_PATH_APP_SITE_OWNER_ACCESS
|
||||
Allow site-owners to access workspace apps from workspaces they do not
|
||||
own. Owners cannot access path-based apps they do not own by default.
|
||||
Path-based apps can make requests to the Coder API and pose a security
|
||||
|
@ -447,17 +447,17 @@ workspaces stopping during the day due to template max TTL.
|
|||
can be disabled entirely with --disable-path-apps for further
|
||||
security.
|
||||
|
||||
[93mENTERPRISE OPTIONS:[0m
|
||||
ENTERPRISE OPTIONS:
|
||||
These options are only available in the Enterprise Edition.
|
||||
|
||||
[96m--[0m[96mbrowser-only[0m bool, [96m$CODER_BROWSER_ONLY[0m
|
||||
--browser-only bool, $CODER_BROWSER_ONLY
|
||||
Whether Coder only allows connections to workspaces via the browser.
|
||||
|
||||
[96m--[0m[96mderp-server-relay-url[0m url, [96m$CODER_DERP_SERVER_RELAY_URL[0m
|
||||
--derp-server-relay-url url, $CODER_DERP_SERVER_RELAY_URL
|
||||
An HTTP URL that is accessible by other replicas to relay DERP
|
||||
traffic. Required for high availability.
|
||||
|
||||
[96m--[0m[96mexternal-token-encryption-keys[0m string-array, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_KEYS[0m
|
||||
--external-token-encryption-keys string-array, $CODER_EXTERNAL_TOKEN_ENCRYPTION_KEYS
|
||||
Encrypt OIDC and Git authentication tokens with AES-256-GCM in the
|
||||
database. The value must be a comma-separated list of base64-encoded
|
||||
keys. Each key, when base64-decoded, must be exactly 32 bytes in
|
||||
|
@ -467,7 +467,7 @@ These options are only available in the Enterprise Edition.
|
|||
process of rotating keys with the `coder server dbcrypt rotate`
|
||||
command.
|
||||
|
||||
[96m--[0m[96mscim-auth-header[0m string, [96m$CODER_SCIM_AUTH_HEADER[0m
|
||||
--scim-auth-header string, $CODER_SCIM_AUTH_HEADER
|
||||
Enables SCIM and sets the authentication header for the built-in SCIM
|
||||
server. New users are automatically created with OIDC authentication.
|
||||
|
||||
|
|
|
@ -1,33 +1,33 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server create-admin-user [flags]
|
||||
|
||||
Create a new admin user with the given username, email and password and adds
|
||||
it to every organization.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96memail[0m string, [96m$CODER_EMAIL[0m
|
||||
OPTIONS:
|
||||
--email string, $CODER_EMAIL
|
||||
The email of the new user. If not specified, you will be prompted via
|
||||
stdin.
|
||||
|
||||
[96m--[0m[96mpassword[0m string, [96m$CODER_PASSWORD[0m
|
||||
--password string, $CODER_PASSWORD
|
||||
The password of the new user. If not specified, you will be prompted
|
||||
via stdin.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
URL of a PostgreSQL database. If empty, the built-in PostgreSQL
|
||||
deployment will be used (Coder must not be already running in this
|
||||
case).
|
||||
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
[96m--[0m[96mssh-keygen-algorithm[0m string, [96m$CODER_SSH_KEYGEN_ALGORITHM[0m (default: ed25519)
|
||||
--ssh-keygen-algorithm string, $CODER_SSH_KEYGEN_ALGORITHM (default: ed25519)
|
||||
The algorithm to use for generating ssh keys. Accepted values are
|
||||
"ed25519", "ecdsa", or "rsa4096".
|
||||
|
||||
[96m--[0m[96musername[0m string, [96m$CODER_USERNAME[0m
|
||||
--username string, $CODER_USERNAME
|
||||
The username of the new user. If not specified, you will be prompted
|
||||
via stdin.
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server dbcrypt
|
||||
|
||||
Manage database encryption.
|
||||
|
||||
[93mSUBCOMMANDS:[0m
|
||||
SUBCOMMANDS:
|
||||
decrypt Decrypt a previously encrypted database.
|
||||
delete Delete all encrypted data from the database. THIS IS A
|
||||
DESTRUCTIVE OPERATION.
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server dbcrypt decrypt [flags]
|
||||
|
||||
Decrypt a previously encrypted database.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mkeys[0m string-array, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_DECRYPT_KEYS[0m
|
||||
OPTIONS:
|
||||
--keys string-array, $CODER_EXTERNAL_TOKEN_ENCRYPTION_DECRYPT_KEYS
|
||||
Keys required to decrypt existing data. Must be a comma-separated list
|
||||
of base64-encoded keys.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
The connection URL for the Postgres database.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server dbcrypt delete [flags]
|
||||
|
||||
Delete all encrypted data from the database. THIS IS A DESTRUCTIVE OPERATION.
|
||||
|
||||
Aliases: rm
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_POSTGRES_URL[0m
|
||||
OPTIONS:
|
||||
--postgres-url string, $CODER_EXTERNAL_TOKEN_ENCRYPTION_POSTGRES_URL
|
||||
The connection URL for the Postgres database.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server dbcrypt rotate [flags]
|
||||
|
||||
Rotate database encryption keys.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mnew-key[0m string, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_ENCRYPT_NEW_KEY[0m
|
||||
OPTIONS:
|
||||
--new-key string, $CODER_EXTERNAL_TOKEN_ENCRYPTION_ENCRYPT_NEW_KEY
|
||||
The new external token encryption key. Must be base64-encoded.
|
||||
|
||||
[96m--[0m[96mold-keys[0m string-array, [96m$CODER_EXTERNAL_TOKEN_ENCRYPTION_ENCRYPT_OLD_KEYS[0m
|
||||
--old-keys string-array, $CODER_EXTERNAL_TOKEN_ENCRYPTION_ENCRYPT_OLD_KEYS
|
||||
The old external token encryption keys. Must be a comma-separated list
|
||||
of base64-encoded keys.
|
||||
|
||||
[96m--[0m[96mpostgres-url[0m string, [96m$CODER_PG_CONNECTION_URL[0m
|
||||
--postgres-url string, $CODER_PG_CONNECTION_URL
|
||||
The connection URL for the Postgres database.
|
||||
|
||||
[96m-[0m[96my[0m, [96m--[0m[96myes[0m bool
|
||||
-y, --yes bool
|
||||
Bypass prompts.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server postgres-builtin-serve [flags]
|
||||
|
||||
Run the built-in PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
OPTIONS:
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
———
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
coder v0.0.0-devel
|
||||
|
||||
[93mUSAGE:[0m
|
||||
USAGE:
|
||||
coder server postgres-builtin-url [flags]
|
||||
|
||||
Output the connection URL for the built-in PostgreSQL deployment.
|
||||
|
||||
[93mOPTIONS:[0m
|
||||
[96m--[0m[96mraw-url[0m bool
|
||||
OPTIONS:
|
||||
--raw-url bool
|
||||
Output the raw connection URL instead of a psql command.
|
||||
|
||||
———
|
||||
|
|
2
go.mod
2
go.mod
|
@ -247,7 +247,7 @@ require (
|
|||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/clbanning/mxj/v2 v2.7.0 // indirect
|
||||
github.com/cloudflare/circl v1.3.3 // indirect
|
||||
github.com/coder/pretty v0.0.0-20230907215737-666f1c793d10
|
||||
github.com/coder/pretty v0.0.0-20230908205945-e89ba86370e0
|
||||
github.com/containerd/continuity v0.4.2-0.20230616210509-1e0d26eb2381 // indirect
|
||||
github.com/coreos/go-iptables v0.6.0 // indirect
|
||||
github.com/dlclark/regexp2 v1.10.0 // indirect
|
||||
|
|
4
go.sum
4
go.sum
|
@ -214,8 +214,8 @@ github.com/coder/go-scim/pkg/v2 v2.0.0-20230221055123-1d63c1222136 h1:0RgB61LcNs
|
|||
github.com/coder/go-scim/pkg/v2 v2.0.0-20230221055123-1d63c1222136/go.mod h1:VkD1P761nykiq75dz+4iFqIQIZka189tx1BQLOp0Skc=
|
||||
github.com/coder/gvisor v0.0.0-20230714132058-be2e4ac102c3 h1:gtuDFa+InmMVUYiurBV+XYu24AeMGv57qlZ23i6rmyE=
|
||||
github.com/coder/gvisor v0.0.0-20230714132058-be2e4ac102c3/go.mod h1:pzr6sy8gDLfVmDAg8OYrlKvGEHw5C3PGTiBXBTCx76Q=
|
||||
github.com/coder/pretty v0.0.0-20230907215737-666f1c793d10 h1:uWbKrpV/yhctyqu27BSPzW2tRNzzPh7Q68im5AFznqM=
|
||||
github.com/coder/pretty v0.0.0-20230907215737-666f1c793d10/go.mod h1:5UuS2Ts+nTToAMeOjNlnHFkPahrtDkmpydBen/3wgZc=
|
||||
github.com/coder/pretty v0.0.0-20230908205945-e89ba86370e0 h1:3A0ES21Ke+FxEM8CXx9n47SZOKOpgSE1bbJzlE4qPVs=
|
||||
github.com/coder/pretty v0.0.0-20230908205945-e89ba86370e0/go.mod h1:5UuS2Ts+nTToAMeOjNlnHFkPahrtDkmpydBen/3wgZc=
|
||||
github.com/coder/retry v1.4.0 h1:g0fojHFxcdgM3sBULqgjFDxw1UIvaCqk4ngUDu0EWag=
|
||||
github.com/coder/retry v1.4.0/go.mod h1:blHMk9vs6LkoRT9ZHyuZo360cufXEhrxqvEzeMtRGoY=
|
||||
github.com/coder/ssh v0.0.0-20230621095435-9a7e23486f1c h1:TI7TzdFI0UvQmwgyQhtI1HeyYNRxAQpr8Tw/rjT8VSA=
|
||||
|
|
|
@ -234,7 +234,7 @@ func (s *Session) extractArchive() error {
|
|||
// Always check for context cancellation before reading the next header.
|
||||
// This is mainly important for unit tests, since a canceled context means
|
||||
// the underlying directory is going to be deleted. There still exists
|
||||
// the small race condition that the context is cancelled after this, and
|
||||
// the small race condition that the context is canceled after this, and
|
||||
// before the disk write.
|
||||
if ctx.Err() != nil {
|
||||
return xerrors.Errorf("context canceled: %w", ctx.Err())
|
||||
|
|
|
@ -8,6 +8,8 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"golang.org/x/exp/slices"
|
||||
|
||||
"github.com/coder/coder/v2/agent"
|
||||
"github.com/coder/coder/v2/coderd/coderdtest"
|
||||
"github.com/coder/coder/v2/codersdk"
|
||||
|
@ -16,7 +18,6 @@ import (
|
|||
"github.com/coder/coder/v2/provisionersdk/proto"
|
||||
"github.com/coder/coder/v2/scaletest/workspacetraffic"
|
||||
"github.com/coder/coder/v2/testutil"
|
||||
"golang.org/x/exp/slices"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
|
|
@ -990,7 +990,7 @@ func (g *Generator) typescriptType(ty types.Type) (TypescriptType, error) {
|
|||
}
|
||||
|
||||
// Do support "Stringer" interfaces, they likely can get string
|
||||
// marshalled.
|
||||
// marshaled.
|
||||
for i := 0; i < intf.NumMethods(); i++ {
|
||||
meth := intf.Method(i)
|
||||
if meth.Name() == "String" {
|
||||
|
|
Loading…
Reference in New Issue