Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf9a5c63

Browse files
authored
Merge branch 'main' into disable-path-based-apps
2 parentsd2bb9f3 +4095330 commitf9a5c63

File tree

605 files changed

+21390
-13497
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

605 files changed

+21390
-13497
lines changed

‎.devcontainer/devcontainer.json‎

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,57 @@
11
{
22
"name":"Development environments on your infrastructure",
33
"image":"codercom/oss-dogfood:latest",
4-
54
"features": {
65
// See all possible options here https://github.com/devcontainers/features/tree/main/src/docker-in-docker
76
"ghcr.io/devcontainers/features/docker-in-docker:2": {
87
"moby":"false"
9-
}
8+
},
9+
"ghcr.io/coder/devcontainer-features/code-server:1": {
10+
"auth":"none",
11+
"port":13337
12+
},
13+
"./filebrowser": {}
1014
},
1115
// SYS_PTRACE to enable go debugging
1216
"runArgs": ["--cap-add=SYS_PTRACE"],
1317
"customizations": {
1418
"vscode": {
1519
"extensions": ["biomejs.biome"]
20+
},
21+
"coder": {
22+
"apps": [
23+
{
24+
"slug":"cursor",
25+
"displayName":"Cursor Desktop",
26+
"url":"cursor://coder.coder-remote/openDevContainer?owner=${localEnv:CODER_WORKSPACE_OWNER_NAME}&workspace=${localEnv:CODER_WORKSPACE_NAME}&agent=${localEnv:CODER_WORKSPACE_PARENT_AGENT_NAME}&url=${localEnv:CODER_URL}&token=$SESSION_TOKEN&devContainerName=${localEnv:CONTAINER_ID}&devContainerFolder=${containerWorkspaceFolder}",
27+
"external":true,
28+
"icon":"/icon/cursor.svg",
29+
"order":1
30+
},
31+
{
32+
"slug":"windsurf",
33+
"displayName":"Windsurf Editor",
34+
"url":"windsurf://coder.coder-remote/openDevContainer?owner=${localEnv:CODER_WORKSPACE_OWNER_NAME}&workspace=${localEnv:CODER_WORKSPACE_NAME}&agent=${localEnv:CODER_WORKSPACE_PARENT_AGENT_NAME}&url=${localEnv:CODER_URL}&token=$SESSION_TOKEN&devContainerName=${localEnv:CONTAINER_ID}&devContainerFolder=${containerWorkspaceFolder}",
35+
"external":true,
36+
"icon":"/icon/windsurf.svg",
37+
"order":4
38+
},
39+
{
40+
"slug":"zed",
41+
"displayName":"Zed Editor",
42+
"url":"zed://ssh/${localEnv:CODER_WORKSPACE_AGENT_NAME}.${localEnv:CODER_WORKSPACE_NAME}.${localEnv:CODER_WORKSPACE_OWNER_NAME}.coder${containerWorkspaceFolder}",
43+
"external":true,
44+
"icon":"/icon/zed.svg",
45+
"order":5
46+
}
47+
]
1648
}
17-
}
49+
},
50+
"mounts": [
51+
// Mount the entire home because conditional mounts are not supported.
52+
// See: https://github.com/devcontainers/spec/issues/132
53+
"source=${localEnv:HOME},target=/mnt/home/coder,type=bind,readonly"
54+
],
55+
"postCreateCommand":"./.devcontainer/postCreateCommand.sh",
56+
"postStartCommand":"sudo service docker start"
1857
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"id":"filebrowser",
3+
"version":"0.0.1",
4+
"name":"File Browser",
5+
"description":"A web-based file browser for your development container",
6+
"options": {
7+
"port": {
8+
"type":"string",
9+
"default":"13339",
10+
"description":"The port to run filebrowser on"
11+
},
12+
// "folder": {
13+
// "type": "string",
14+
// "default": "${containerWorkspaceFolder}",
15+
// "description": "The root directory for filebrowser to serve"
16+
//},
17+
"auth": {
18+
"type":"string",
19+
"enum": [
20+
"none",
21+
"password"
22+
],
23+
"default":"none",
24+
"description":"Authentication method (none or password)"
25+
}
26+
},
27+
"entrypoint":"/usr/local/bin/filebrowser-entrypoint",
28+
"dependsOn": {
29+
"ghcr.io/devcontainers/features/common-utils:2": {}
30+
},
31+
"customizations": {
32+
"coder": {
33+
"apps": [
34+
{
35+
"slug":"filebrowser",
36+
"displayName":"File Browser",
37+
"url":"http://localhost:${localEnv:FEATURE_FILEBROWSER_OPTION_PORT:13339}",
38+
"icon":"/icon/filebrowser.svg",
39+
"order":3,
40+
"subdomain":true,
41+
"healthcheck": {
42+
"url":"http://localhost:${localEnv:FEATURE_FILEBROWSER_OPTION_PORT:13339}/health",
43+
"interval":5,
44+
"threshold":6
45+
}
46+
}
47+
]
48+
}
49+
}
50+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
BOLD='\033[0;1m'
6+
7+
printf"%sInstalling filebrowser\n\n""${BOLD}"
8+
9+
# Check if filebrowser is installed.
10+
if!command -v filebrowser&>/dev/null;then
11+
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh| bash
12+
fi
13+
14+
printf"🥳 Installation complete!\n\n"
15+
16+
# Create run script.
17+
cat>/usr/local/bin/filebrowser-entrypoint<<EOF
18+
#!/bin/bash
19+
20+
printf "🛠️ Configuring filebrowser\n\n"
21+
22+
AUTH="${AUTH}"
23+
PORT="${PORT}"
24+
FOLDER="$(pwd)"
25+
LOG_PATH=/tmp/filebrowser.log
26+
export FB_DATABASE="/tmp/filebrowser.db"
27+
28+
# Check if filebrowser db exists.
29+
if [[ ! -f "\${FB_DATABASE}" ]]; then
30+
filebrowser config init
31+
if [[ "\$AUTH" == "password" ]]; then
32+
filebrowser users add admin admin --perm.admin=true --viewMode=mosaic
33+
fi
34+
fi
35+
36+
# Configure filebrowser.
37+
if [[ "\$AUTH" == "none" ]]; then
38+
filebrowser config set --port="\${PORT}" --auth.method=noauth --root="\${FOLDER}"
39+
else
40+
filebrowser config set --port="\${PORT}" --auth.method=json --root="\${FOLDER}"
41+
fi
42+
43+
set -euo pipefail
44+
45+
printf "👷 Starting filebrowser...\n\n"
46+
printf "📂 Serving\${FOLDER} at http://localhost:\${PORT}\n\n"
47+
48+
filebrowser >>\${LOG_PATH} 2>&1 &
49+
50+
printf "📝 Logs at\${LOG_PATH}\n\n"
51+
EOF
52+
53+
chmod +x /usr/local/bin/filebrowser-entrypoint
54+
55+
printf"✅ File Browser installed!\n\n"
56+
printf"🚀 Run 'filebrowser-entrypoint' to start the service\n\n"

‎.devcontainer/postCreateCommand.sh‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/bin/sh
2+
3+
install_devcontainer_cli() {
4+
npm install -g @devcontainers/cli
5+
}
6+
7+
install_ssh_config() {
8+
echo"🔑 Installing SSH configuration..."
9+
rsync -a /mnt/home/coder/.ssh/~/.ssh/
10+
chmod 0700~/.ssh
11+
}
12+
13+
install_git_config() {
14+
echo"📂 Installing Git configuration..."
15+
if [-f /mnt/home/coder/git/config ];then
16+
rsync -a /mnt/home/coder/git/~/.config/git/
17+
elif [-d /mnt/home/coder/.gitconfig ];then
18+
rsync -a /mnt/home/coder/.gitconfig~/.gitconfig
19+
else
20+
echo"⚠️ Git configuration directory not found."
21+
fi
22+
}
23+
24+
install_dotfiles() {
25+
if [!-d /mnt/home/coder/.config/coderv2/dotfiles ];then
26+
echo"⚠️ Dotfiles directory not found."
27+
return
28+
fi
29+
30+
cd /mnt/home/coder/.config/coderv2/dotfiles||return
31+
forscriptin install.sh install bootstrap.sh bootstrap script/bootstrap setup.sh setup script/setup;do
32+
if [-x$script ];then
33+
echo"📦 Installing dotfiles..."
34+
./$script|| {
35+
echo"❌ Error running$script. Please check the script for issues."
36+
return
37+
}
38+
echo"✅ Dotfiles installed successfully."
39+
return
40+
fi
41+
done
42+
echo"⚠️ No install script found in dotfiles directory."
43+
}
44+
45+
personalize() {
46+
# Allow script to continue as Coder dogfood utilizes a hack to
47+
# synchronize startup script execution.
48+
touch /tmp/.coder-startup-script.done
49+
50+
if [-x /mnt/home/coder/personalize ];then
51+
echo"🎨 Personalizing environment..."
52+
/mnt/home/coder/personalize
53+
fi
54+
}
55+
56+
install_devcontainer_cli
57+
install_ssh_config
58+
install_dotfiles
59+
personalize

‎.github/.linkspector.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@ ignorePatterns:
2424
-pattern:"mutagen.io"
2525
-pattern:"docs.github.com"
2626
-pattern:"claude.ai"
27+
-pattern:"splunk.com"
2728
aliveStatusCodes:
2829
-200
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name:"Download Embedded Postgres Cache"
2+
description:|
3+
Downloads the embedded postgres cache and outputs today's cache key.
4+
A PR job can use a cache if it was created by its base branch, its current
5+
branch, or the default branch.
6+
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache
7+
outputs:
8+
cache-key:
9+
description:"Today's cache key"
10+
value:${{ steps.vars.outputs.cache-key }}
11+
inputs:
12+
key-prefix:
13+
description:"Prefix for the cache key"
14+
required:true
15+
cache-path:
16+
description:"Path to the cache directory"
17+
required:true
18+
runs:
19+
using:"composite"
20+
steps:
21+
-name:Get date values and cache key
22+
id:vars
23+
shell:bash
24+
run:|
25+
export YEAR_MONTH=$(date +'%Y-%m')
26+
export PREV_YEAR_MONTH=$(date -d 'last month' +'%Y-%m')
27+
export DAY=$(date +'%d')
28+
echo "year-month=$YEAR_MONTH" >> $GITHUB_OUTPUT
29+
echo "prev-year-month=$PREV_YEAR_MONTH" >> $GITHUB_OUTPUT
30+
echo "cache-key=${{ inputs.key-prefix }}-${YEAR_MONTH}-${DAY}" >> $GITHUB_OUTPUT
31+
32+
# By default, depot keeps caches for 14 days. This is plenty for embedded
33+
# postgres, which changes infrequently.
34+
# https://depot.dev/docs/github-actions/overview#cache-retention-policy
35+
-name:Download embedded Postgres cache
36+
uses:actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684# v4.2.3
37+
with:
38+
path:${{ inputs.cache-path }}
39+
key:${{ steps.vars.outputs.cache-key }}
40+
# > If there are multiple partial matches for a restore key, the action returns the most recently created cache.
41+
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#matching-a-cache-key
42+
# The second restore key allows non-main branches to use the cache from the previous month.
43+
# This prevents PRs from rebuilding the cache on the first day of the month.
44+
# It also makes sure that once a month, the cache is fully reset.
45+
restore-keys:|
46+
${{ inputs.key-prefix }}-${{ steps.vars.outputs.year-month }}-
47+
${{ github.ref != 'refs/heads/main' && format('{0}-{1}-', inputs.key-prefix, steps.vars.outputs.prev-year-month) || '' }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name:"Upload Embedded Postgres Cache"
2+
description:Uploads the embedded Postgres cache. This only runs on the main branch.
3+
inputs:
4+
cache-key:
5+
description:"Cache key"
6+
required:true
7+
cache-path:
8+
description:"Path to the cache directory"
9+
required:true
10+
runs:
11+
using:"composite"
12+
steps:
13+
-name:Upload Embedded Postgres cache
14+
if:${{ github.ref == 'refs/heads/main' }}
15+
uses:actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684# v4.2.3
16+
with:
17+
path:${{ inputs.cache-path }}
18+
key:${{ inputs.cache-key }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name:"Setup Embedded Postgres Cache Paths"
2+
description:Sets up a path for cached embedded postgres binaries.
3+
outputs:
4+
embedded-pg-cache:
5+
description:"Value of EMBEDDED_PG_CACHE_DIR"
6+
value:${{ steps.paths.outputs.embedded-pg-cache }}
7+
cached-dirs:
8+
description:"directories that should be cached between CI runs"
9+
value:${{ steps.paths.outputs.cached-dirs }}
10+
runs:
11+
using:"composite"
12+
steps:
13+
-name:Override Go paths
14+
id:paths
15+
uses:actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea# v7
16+
with:
17+
script:|
18+
const path = require('path');
19+
20+
// RUNNER_TEMP should be backed by a RAM disk on Windows if
21+
// coder/setup-ramdisk-action was used
22+
const runnerTemp = process.env.RUNNER_TEMP;
23+
const embeddedPgCacheDir = path.join(runnerTemp, 'embedded-pg-cache');
24+
core.exportVariable('EMBEDDED_PG_CACHE_DIR', embeddedPgCacheDir);
25+
core.setOutput('embedded-pg-cache', embeddedPgCacheDir);
26+
const cachedDirs = `${embeddedPgCacheDir}`;
27+
core.setOutput('cached-dirs', cachedDirs);
28+
29+
-name:Create directories
30+
shell:bash
31+
run:|
32+
set -e
33+
mkdir -p "$EMBEDDED_PG_CACHE_DIR"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp