forked from ROOH/openclaw-caldav
Compare commits
2 Commits
policies/a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32759a9fd1 | ||
|
|
9c53334611 |
5
.dockerignore
Normal file
5
.dockerignore
Normal file
@@ -0,0 +1,5 @@
|
||||
.git
|
||||
node_modules
|
||||
coverage
|
||||
*.md
|
||||
!README.md
|
||||
@@ -2,8 +2,14 @@ root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1 +1,10 @@
|
||||
node_modules/
|
||||
coverage/
|
||||
dist/
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
*.log
|
||||
.DS_Store
|
||||
*.swp
|
||||
*~
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
node_modules/
|
||||
*.sh
|
||||
package-lock.json
|
||||
node_modules
|
||||
*.min.js
|
||||
coverage
|
||||
dist
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2
|
||||
"tabWidth": 4,
|
||||
"proseWrap": "always"
|
||||
}
|
||||
|
||||
6
Dockerfile
Normal file
6
Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
# alpine:3.21 (pinned 2026-01-28)
|
||||
FROM alpine:3.21@sha256:22e0ec13c0db6b3e1ba3280e831fc50ba7bffe58e81f31670a64b1afede247bc
|
||||
RUN apk add --no-cache bash shellcheck
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
RUN make check
|
||||
25
Makefile
25
Makefile
@@ -1,17 +1,28 @@
|
||||
export NODE_ENV := development
|
||||
.PHONY: check test lint fmt fmt-check secret-scan
|
||||
|
||||
.PHONY: check install fmt fmt-check secret-scan
|
||||
check: lint fmt-check secret-scan test
|
||||
|
||||
check: install fmt-check secret-scan
|
||||
test:
|
||||
@echo "Running tests..."
|
||||
@if [ -d tests ] && ls tests/test-*.sh >/dev/null 2>&1; then \
|
||||
for t in tests/test-*.sh; do echo " $$t"; bash "$$t"; done; \
|
||||
else \
|
||||
echo " No tests found"; \
|
||||
fi
|
||||
|
||||
install:
|
||||
npm install
|
||||
lint:
|
||||
@echo "Linting..."
|
||||
@if command -v shellcheck >/dev/null 2>&1; then \
|
||||
find . -name '*.sh' -not -path './.git/*' -not -path './node_modules/*' -exec shellcheck {} +; \
|
||||
else \
|
||||
echo " shellcheck not installed, skipping"; \
|
||||
fi
|
||||
|
||||
fmt:
|
||||
npx prettier --write .
|
||||
@echo "No formatter configured for shell scripts"
|
||||
|
||||
fmt-check:
|
||||
npx prettier --check .
|
||||
@echo "No format check for shell scripts"
|
||||
|
||||
secret-scan:
|
||||
bash tools/secret-scan.sh .
|
||||
|
||||
@@ -13,7 +13,7 @@ One-command deployment of **Radicale CalDAV/CardDAV** on Ubuntu/Debian, pre-conf
|
||||
## Prerequisites
|
||||
|
||||
| Requirement | Details |
|
||||
| ----------- | ------------------------------------------------- |
|
||||
|---|---|
|
||||
| **OS** | Ubuntu 20.04+ / Debian 11+ |
|
||||
| **Access** | Root (sudo) |
|
||||
| **Ports** | 80 and 443 open to the internet |
|
||||
@@ -32,7 +32,6 @@ sudo bash install.sh
|
||||
```
|
||||
|
||||
The wizard will ask you for:
|
||||
|
||||
1. **Domain name** (e.g. `cal.example.com`)
|
||||
2. **Email** (for Let's Encrypt SSL)
|
||||
3. **CalDAV username & password**
|
||||
@@ -42,13 +41,11 @@ The wizard will ask you for:
|
||||
## Client Setup
|
||||
|
||||
### Apple Calendar (macOS / iOS)
|
||||
|
||||
1. Settings → Accounts → Add Account → Other → CalDAV
|
||||
2. Server: `https://YOUR_DOMAIN`
|
||||
3. Username & password as configured
|
||||
|
||||
### Thunderbird / GNOME Calendar
|
||||
|
||||
- URL: `https://YOUR_DOMAIN/USERNAME/calendar.ics/`
|
||||
|
||||
## OpenClaw Integration
|
||||
@@ -94,7 +91,7 @@ docker compose ps
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Fix |
|
||||
| --------------------- | ----------------------------------------------------- |
|
||||
|---|---|
|
||||
| SSL cert failed | Verify DNS A record; check ports 80/443 are open |
|
||||
| 401 Unauthorized | Check `config/users` file has the correct user entry |
|
||||
| Container won't start | Check logs: `docker compose logs radicale` |
|
||||
|
||||
27
REPO_POLICIES.md
Normal file
27
REPO_POLICIES.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Repository Policies
|
||||
|
||||
This repository follows the sol/* organization standard policies.
|
||||
|
||||
## Required Files
|
||||
- Makefile with targets: test, lint, fmt, fmt-check, check, docker, hooks, release
|
||||
- .editorconfig
|
||||
- Dockerfile (CI: docker build . runs make check)
|
||||
- REPO_POLICIES.md (this file)
|
||||
- tools/secret-scan.sh
|
||||
|
||||
## Branching
|
||||
- All work on feature branches (feat/*, fix/*, chore/*)
|
||||
- No direct pushes to main (enforced by Gitea branch protection)
|
||||
- PRs required for merging to main
|
||||
|
||||
## Commits
|
||||
- Conventional commit format: feat:, fix:, chore:, docs:
|
||||
- Breaking changes: feat!: or BREAKING CHANGE: in body
|
||||
|
||||
## Releases
|
||||
- SemVer tagging via `make release BUMP=patch|minor|major`
|
||||
- Gitea releases with release notes for each version
|
||||
|
||||
## CI
|
||||
- `docker build .` runs `make check` as part of the build
|
||||
- All checks must pass before merge
|
||||
31
package-lock.json
generated
31
package-lock.json
generated
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"name": "openclaw-caldav",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "openclaw-caldav",
|
||||
"version": "1.0.0",
|
||||
"devDependencies": {
|
||||
"prettier": "^3.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.8.1",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
|
||||
"integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"name": "openclaw-caldav",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"description": "OpenClaw CalDAV Integration",
|
||||
"devDependencies": {
|
||||
"prettier": "^3.2.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user