@profoundlogic/coderflow-server 0.4.9 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -158
- package/dist/README.md +16 -158
- package/dist/base-image/agent-wrapper.sh +1 -1
- package/dist/capture-screenshot.mjs +34 -0
- package/dist/coder-server.js +1 -1
- package/dist/config/cli-models.json +4 -3
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/cleanup-users.js +1 -0
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/grant-admin.js +1 -0
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/list-roles.js +1 -0
- package/dist/lib/cli/list-users.js +1 -0
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -0
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/external-connections.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/ibmi-sync.js +1 -0
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/permission-resolver.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/playwright.config.js +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/automations.js +1 -1
- package/dist/routes/bindings.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/roles.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/scripts/migrate-config-to-data-dir.js +1 -1
- package/dist/scripts/sync_to_ibmi.sh +204 -0
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/docs/admin/environments.md +1 -0
- package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +36 -0
- package/dist/web-ui/public/environments.html +1 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/index.html +2 -2
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.html +3 -2
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/server-health.js +1 -1
- package/dist/web-ui/public/settings.css +3 -2
- package/dist/web-ui/public/settings.html +0 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/styles.css +110 -12
- package/dist/web-ui/public/task.html +80 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.html +76 -81
- package/dist/web-ui/public/teams.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.html +12 -11
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
- package/dist/lib/cli/migrate-rbac.js +0 -1
- package/dist/lib/scoped-rbac-migration-runner.js +0 -1
- package/dist/scripts/migrate-to-scoped-rbac.js +0 -2
package/README.md
CHANGED
|
@@ -4,181 +4,39 @@ CoderFlow is an enterprise platform that runs autonomous engineering agents insi
|
|
|
4
4
|
|
|
5
5
|
CoderFlow:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
7
|
+
- Submits coding tasks to AI agents (Claude, Codex, Gemini) running in isolated Docker containers
|
|
8
|
+
- Lets agents execute code, compile, test, and validate changes automatically
|
|
9
|
+
- Supports both headless execution (submit once, review results later) and interactive sessions (work within containers for guided work)
|
|
10
|
+
- Manages multi-repository workspaces with build pipelines and test suites
|
|
11
|
+
- Allows developers to review, iterate, and approve changes before committing
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Quick Start
|
|
14
14
|
|
|
15
15
|
### Prerequisites
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
- **Linux** host
|
|
18
|
+
- **Node.js 24**
|
|
19
|
+
- **Docker** — [Install Docker Engine](https://docs.docker.com/engine/install/)
|
|
20
|
+
- **Git**
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
- **Git** — Available via your distribution's package manager
|
|
21
|
-
|
|
22
|
-
Optionally, if you'd like the server to listen on a port below 1024 (such as 443 or 80):
|
|
23
|
-
|
|
24
|
-
- **On Ubuntu and Debian-based distros** - Install [authbind](https://manpages.ubuntu.com/manpages/noble/man1/authbind.1.html) via APT package manager.
|
|
25
|
-
- **Other distros** - See your distro's documentation for enabling non-root users to bind network services to privileged ports
|
|
26
|
-
|
|
27
|
-
### Root Permissions
|
|
28
|
-
|
|
29
|
-
> [!IMPORTANT]
|
|
30
|
-
> Only a few parts of the installation process require root permissions.
|
|
31
|
-
> Do not use root permissions (i.e. `sudo` or `su`) except where specifically instructed.
|
|
32
|
-
> The server installs and runs as a non-root user.
|
|
33
|
-
|
|
34
|
-
### Create a Dedicated Linux User For Each Installation
|
|
35
|
-
|
|
36
|
-
Each installation of CoderFlow server should run under a unique and dedicated user account, rather than your personal account or root. This provides better security isolation and makes it easier to manage the service.
|
|
37
|
-
|
|
38
|
-
Create a dedicated user (we suggest `coder`, but any name works):
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# Create the user with a home directory
|
|
42
|
-
sudo useradd -m -s /bin/bash coder
|
|
43
|
-
|
|
44
|
-
# Set a password (optional, if you need interactive login)
|
|
45
|
-
sudo passwd coder
|
|
46
|
-
|
|
47
|
-
# Add the user to the docker group so it can manage containers
|
|
48
|
-
sudo usermod -aG docker coder
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
If `coder` conflicts with an existing user on your system, choose a different name — the server works the same regardless of the username.
|
|
52
|
-
|
|
53
|
-
### Optional: If Using Server Listen Port Below 1024
|
|
54
|
-
|
|
55
|
-
If you'd like to use a server listen port below 1024 (e.g. 443), configure `authbind` to allow the dedicated CoderFlow user to use the port:
|
|
56
|
-
|
|
57
|
-
For example, for port 443:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
sudo touch /etc/authbind/byport/443
|
|
61
|
-
sudo chown coder /etc/authbind/byport/443
|
|
62
|
-
sudo chmod 500 /etc/authbind/byport/443
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Switch to Dedicated CoderFlow User
|
|
66
|
-
|
|
67
|
-
Switch to the dedicated user before proceeding with installation:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
sudo su - coder
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Install Node.js via NVS
|
|
74
|
-
|
|
75
|
-
Use the [installation guide](https://github.com/jasongin/nvs?tab=readme-ov-file#mac-linux) to install Node Version Switcher (NVS) in the dedicated user's home directory. This allows each CoderFlow installation/user to use a separate version of Node.js. If you prefer, you can use `nvm` instead, but NVS will be used in this documentation.
|
|
76
|
-
|
|
77
|
-
After installing NVS, exit and restart your shell and then install Node 24:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
nvs add node/24
|
|
81
|
-
nvs use node/24
|
|
82
|
-
nvs link node/24
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Setup
|
|
86
|
-
|
|
87
|
-
#### Install the Server
|
|
22
|
+
### Install
|
|
88
23
|
|
|
89
24
|
```bash
|
|
90
25
|
npm install -g @profoundlogic/coderflow-server
|
|
91
26
|
```
|
|
92
27
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
The setup repository contains your environments, task templates, and configuration.
|
|
96
|
-
|
|
97
|
-
If your organization already has a setup repository, clone it:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
git clone https://github.com/your-org/mycompany-coder-setup.git
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Otherwise, create a new one:
|
|
28
|
+
### Initialize
|
|
104
29
|
|
|
105
30
|
```bash
|
|
106
31
|
coder-server init mycompany-coder-setup
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
This creates a `mycompany-coder-setup` directory with the required structure and initializes it as a git repository.
|
|
110
|
-
|
|
111
|
-
#### Install License
|
|
112
|
-
|
|
113
|
-
```bash
|
|
32
|
+
coder-server config set coder_setup_path mycompany-coder-setup
|
|
114
33
|
coder-server license set <your-license-key>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
#### Create Admin User
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
34
|
coder-server create-user --username=admin --email=admin@example.com --name="Admin User" --admin
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
You'll be prompted to set a password.
|
|
124
|
-
|
|
125
|
-
On a brand-new install, the first created account is automatically granted Server Admin even without `--admin` (this policy is enforced in the shared user service, so it applies across CLI/API/OIDC auto-provisioning paths).
|
|
126
|
-
|
|
127
|
-
#### Optional: Configure Server Listen Port and SSL
|
|
128
|
-
|
|
129
|
-
By default the server listens on port 3000. To configure an alternate port (e.g. 443):
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
coder-server config set server_port 443
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
To configure a certificate for SSL:
|
|
136
|
-
|
|
137
|
-
> [!INFO]
|
|
138
|
-
> Certificate and key files must be in PEM format.
|
|
139
|
-
> Concatenate certificate, intermediate, and root into a single file, in that order.
|
|
140
|
-
> File paths can be given as absolute or relative.
|
|
141
|
-
> Files must be readable by the dedicated CoderFlow user.
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
coder-server config set ssl_cert_path mycert.pem
|
|
145
|
-
coder-server config set ssl_key_path mykey.pem
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
#### Start the Server
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
35
|
coder-server start
|
|
152
36
|
```
|
|
153
37
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
authbind --deep coder-server start
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Once running, connect to the server's online documentation to continue with the installation (e.g., http://myserver:3000/docs/#/admin/installation?id=start-the-server).
|
|
161
|
-
|
|
162
|
-
## Git History Guardrail Tuning
|
|
163
|
-
|
|
164
|
-
Git History protects server and browser performance by applying diff guardrails for large commits.
|
|
165
|
-
|
|
166
|
-
- `GIT_HISTORY_MAX_DIFF_FILES` (default: `500`)
|
|
167
|
-
- `GIT_HISTORY_MAX_DIFF_BYTES` (default: `5242880`, 5MB)
|
|
168
|
-
- `GIT_HISTORY_MAX_SUMMARY_COMMAND_BUFFER` (default: `6291456`, 6MB)
|
|
169
|
-
- `GIT_HISTORY_MAX_DIFF_COMMAND_BUFFER` (default: `max(GIT_HISTORY_MAX_DIFF_BYTES + 1MB, 6MB)`)
|
|
170
|
-
|
|
171
|
-
Suggested tuning profiles:
|
|
38
|
+
## Documentation
|
|
172
39
|
|
|
173
|
-
|
|
174
|
-
- High-churn monorepo: `GIT_HISTORY_MAX_DIFF_FILES=2000`
|
|
175
|
-
- Very large commit workflows: `GIT_HISTORY_MAX_DIFF_FILES=6000`
|
|
176
|
-
|
|
177
|
-
If your repositories regularly include very large commits (for example 5000+ changed files), raise `GIT_HISTORY_MAX_DIFF_FILES` intentionally based on your infrastructure limits:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
GIT_HISTORY_MAX_DIFF_FILES=6000
|
|
181
|
-
GIT_HISTORY_MAX_DIFF_BYTES=10485760
|
|
182
|
-
```
|
|
40
|
+
For complete installation instructions, configuration options, environment setup, and administration guides, see the full documentation:
|
|
183
41
|
|
|
184
|
-
|
|
42
|
+
**[CoderFlow Documentation — Installation Guide](https://coderflow.ai/docs/#/admin/installation)**
|
package/dist/README.md
CHANGED
|
@@ -4,181 +4,39 @@ CoderFlow is an enterprise platform that runs autonomous engineering agents insi
|
|
|
4
4
|
|
|
5
5
|
CoderFlow:
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
7
|
+
- Submits coding tasks to AI agents (Claude, Codex, Gemini) running in isolated Docker containers
|
|
8
|
+
- Lets agents execute code, compile, test, and validate changes automatically
|
|
9
|
+
- Supports both headless execution (submit once, review results later) and interactive sessions (work within containers for guided work)
|
|
10
|
+
- Manages multi-repository workspaces with build pipelines and test suites
|
|
11
|
+
- Allows developers to review, iterate, and approve changes before committing
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Quick Start
|
|
14
14
|
|
|
15
15
|
### Prerequisites
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
- **Linux** host
|
|
18
|
+
- **Node.js 24**
|
|
19
|
+
- **Docker** — [Install Docker Engine](https://docs.docker.com/engine/install/)
|
|
20
|
+
- **Git**
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
- **Git** — Available via your distribution's package manager
|
|
21
|
-
|
|
22
|
-
Optionally, if you'd like the server to listen on a port below 1024 (such as 443 or 80):
|
|
23
|
-
|
|
24
|
-
- **On Ubuntu and Debian-based distros** - Install [authbind](https://manpages.ubuntu.com/manpages/noble/man1/authbind.1.html) via APT package manager.
|
|
25
|
-
- **Other distros** - See your distro's documentation for enabling non-root users to bind network services to privileged ports
|
|
26
|
-
|
|
27
|
-
### Root Permissions
|
|
28
|
-
|
|
29
|
-
> [!IMPORTANT]
|
|
30
|
-
> Only a few parts of the installation process require root permissions.
|
|
31
|
-
> Do not use root permissions (i.e. `sudo` or `su`) except where specifically instructed.
|
|
32
|
-
> The server installs and runs as a non-root user.
|
|
33
|
-
|
|
34
|
-
### Create a Dedicated Linux User For Each Installation
|
|
35
|
-
|
|
36
|
-
Each installation of CoderFlow server should run under a unique and dedicated user account, rather than your personal account or root. This provides better security isolation and makes it easier to manage the service.
|
|
37
|
-
|
|
38
|
-
Create a dedicated user (we suggest `coder`, but any name works):
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# Create the user with a home directory
|
|
42
|
-
sudo useradd -m -s /bin/bash coder
|
|
43
|
-
|
|
44
|
-
# Set a password (optional, if you need interactive login)
|
|
45
|
-
sudo passwd coder
|
|
46
|
-
|
|
47
|
-
# Add the user to the docker group so it can manage containers
|
|
48
|
-
sudo usermod -aG docker coder
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
If `coder` conflicts with an existing user on your system, choose a different name — the server works the same regardless of the username.
|
|
52
|
-
|
|
53
|
-
### Optional: If Using Server Listen Port Below 1024
|
|
54
|
-
|
|
55
|
-
If you'd like to use a server listen port below 1024 (e.g. 443), configure `authbind` to allow the dedicated CoderFlow user to use the port:
|
|
56
|
-
|
|
57
|
-
For example, for port 443:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
sudo touch /etc/authbind/byport/443
|
|
61
|
-
sudo chown coder /etc/authbind/byport/443
|
|
62
|
-
sudo chmod 500 /etc/authbind/byport/443
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Switch to Dedicated CoderFlow User
|
|
66
|
-
|
|
67
|
-
Switch to the dedicated user before proceeding with installation:
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
sudo su - coder
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Install Node.js via NVS
|
|
74
|
-
|
|
75
|
-
Use the [installation guide](https://github.com/jasongin/nvs?tab=readme-ov-file#mac-linux) to install Node Version Switcher (NVS) in the dedicated user's home directory. This allows each CoderFlow installation/user to use a separate version of Node.js. If you prefer, you can use `nvm` instead, but NVS will be used in this documentation.
|
|
76
|
-
|
|
77
|
-
After installing NVS, exit and restart your shell and then install Node 24:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
nvs add node/24
|
|
81
|
-
nvs use node/24
|
|
82
|
-
nvs link node/24
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Setup
|
|
86
|
-
|
|
87
|
-
#### Install the Server
|
|
22
|
+
### Install
|
|
88
23
|
|
|
89
24
|
```bash
|
|
90
25
|
npm install -g @profoundlogic/coderflow-server
|
|
91
26
|
```
|
|
92
27
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
The setup repository contains your environments, task templates, and configuration.
|
|
96
|
-
|
|
97
|
-
If your organization already has a setup repository, clone it:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
git clone https://github.com/your-org/mycompany-coder-setup.git
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Otherwise, create a new one:
|
|
28
|
+
### Initialize
|
|
104
29
|
|
|
105
30
|
```bash
|
|
106
31
|
coder-server init mycompany-coder-setup
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
This creates a `mycompany-coder-setup` directory with the required structure and initializes it as a git repository.
|
|
110
|
-
|
|
111
|
-
#### Install License
|
|
112
|
-
|
|
113
|
-
```bash
|
|
32
|
+
coder-server config set coder_setup_path mycompany-coder-setup
|
|
114
33
|
coder-server license set <your-license-key>
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
#### Create Admin User
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
34
|
coder-server create-user --username=admin --email=admin@example.com --name="Admin User" --admin
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
You'll be prompted to set a password.
|
|
124
|
-
|
|
125
|
-
On a brand-new install, the first created account is automatically granted Server Admin even without `--admin` (this policy is enforced in the shared user service, so it applies across CLI/API/OIDC auto-provisioning paths).
|
|
126
|
-
|
|
127
|
-
#### Optional: Configure Server Listen Port and SSL
|
|
128
|
-
|
|
129
|
-
By default the server listens on port 3000. To configure an alternate port (e.g. 443):
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
coder-server config set server_port 443
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
To configure a certificate for SSL:
|
|
136
|
-
|
|
137
|
-
> [!INFO]
|
|
138
|
-
> Certificate and key files must be in PEM format.
|
|
139
|
-
> Concatenate certificate, intermediate, and root into a single file, in that order.
|
|
140
|
-
> File paths can be given as absolute or relative.
|
|
141
|
-
> Files must be readable by the dedicated CoderFlow user.
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
coder-server config set ssl_cert_path mycert.pem
|
|
145
|
-
coder-server config set ssl_key_path mykey.pem
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
#### Start the Server
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
35
|
coder-server start
|
|
152
36
|
```
|
|
153
37
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
authbind --deep coder-server start
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Once running, connect to the server's online documentation to continue with the installation (e.g., http://myserver:3000/docs/#/admin/installation?id=start-the-server).
|
|
161
|
-
|
|
162
|
-
## Git History Guardrail Tuning
|
|
163
|
-
|
|
164
|
-
Git History protects server and browser performance by applying diff guardrails for large commits.
|
|
165
|
-
|
|
166
|
-
- `GIT_HISTORY_MAX_DIFF_FILES` (default: `500`)
|
|
167
|
-
- `GIT_HISTORY_MAX_DIFF_BYTES` (default: `5242880`, 5MB)
|
|
168
|
-
- `GIT_HISTORY_MAX_SUMMARY_COMMAND_BUFFER` (default: `6291456`, 6MB)
|
|
169
|
-
- `GIT_HISTORY_MAX_DIFF_COMMAND_BUFFER` (default: `max(GIT_HISTORY_MAX_DIFF_BYTES + 1MB, 6MB)`)
|
|
170
|
-
|
|
171
|
-
Suggested tuning profiles:
|
|
38
|
+
## Documentation
|
|
172
39
|
|
|
173
|
-
|
|
174
|
-
- High-churn monorepo: `GIT_HISTORY_MAX_DIFF_FILES=2000`
|
|
175
|
-
- Very large commit workflows: `GIT_HISTORY_MAX_DIFF_FILES=6000`
|
|
176
|
-
|
|
177
|
-
If your repositories regularly include very large commits (for example 5000+ changed files), raise `GIT_HISTORY_MAX_DIFF_FILES` intentionally based on your infrastructure limits:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
GIT_HISTORY_MAX_DIFF_FILES=6000
|
|
181
|
-
GIT_HISTORY_MAX_DIFF_BYTES=10485760
|
|
182
|
-
```
|
|
40
|
+
For complete installation instructions, configuration options, environment setup, and administration guides, see the full documentation:
|
|
183
41
|
|
|
184
|
-
|
|
42
|
+
**[CoderFlow Documentation — Installation Guide](https://coderflow.ai/docs/#/admin/installation)**
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# Model selection via environment variables:
|
|
5
5
|
# CLAUDE_MODEL - Model for Claude (e.g., opus, sonnet, haiku)
|
|
6
6
|
# CLAUDE_CODE_EFFORT_LEVEL - Effort level for Claude (low, medium, high, max)
|
|
7
|
-
# OPENAI_MODEL - Model for Codex/OpenAI (e.g., gpt-5.
|
|
7
|
+
# OPENAI_MODEL - Model for Codex/OpenAI (e.g., gpt-5.4)
|
|
8
8
|
# GEMINI_MODEL - Model for Gemini (e.g., gemini-2.5-pro)
|
|
9
9
|
# CODEX_REASONING_LEVEL - Reasoning level for Codex (low, medium, high, xhigh)
|
|
10
10
|
# CODEX_MODEL_PROVIDER - Optional Codex model provider override (e.g., coderflow_managed_custom_endpoint)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { chromium } from 'playwright';
|
|
2
|
+
import { loginAsAdmin } from '/workspace/coderflow/packages/server/tests/helpers/auth-helper.js';
|
|
3
|
+
|
|
4
|
+
(async () => {
|
|
5
|
+
const browser = await chromium.launch({ headless: true });
|
|
6
|
+
const context = await browser.newContext();
|
|
7
|
+
const page = await context.newPage();
|
|
8
|
+
|
|
9
|
+
console.log('Logging in as admin...');
|
|
10
|
+
await loginAsAdmin(page);
|
|
11
|
+
|
|
12
|
+
console.log('Navigating to teams page...');
|
|
13
|
+
await page.goto('http://localhost:3000/teams.html');
|
|
14
|
+
|
|
15
|
+
// Wait for teams to load and click on an edit team button
|
|
16
|
+
console.log('Waiting for teams table...');
|
|
17
|
+
await page.waitForSelector('#teams-table-body tr');
|
|
18
|
+
|
|
19
|
+
// Let's create a new team to ensure we have one, or just open the create modal
|
|
20
|
+
console.log('Opening Create Team modal...');
|
|
21
|
+
await page.click('#create-team-btn');
|
|
22
|
+
|
|
23
|
+
// Wait for the modal to be visible
|
|
24
|
+
await page.waitForSelector('#team-modal', { state: 'visible' });
|
|
25
|
+
|
|
26
|
+
// Take screenshot
|
|
27
|
+
console.log('Taking screenshot...');
|
|
28
|
+
// Ensure we capture the whole modal
|
|
29
|
+
const modal = await page.locator('#team-modal .modal-content');
|
|
30
|
+
await modal.screenshot({ path: '/task-output/attachments/result-screenshot.png' });
|
|
31
|
+
|
|
32
|
+
await browser.close();
|
|
33
|
+
console.log('Done!');
|
|
34
|
+
})();
|