forked from ROOH/openclaw-caldav
Compare commits
1 Commits
main
...
policies/a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bb515172d |
@@ -1,5 +0,0 @@
|
|||||||
.git
|
|
||||||
node_modules
|
|
||||||
coverage
|
|
||||||
*.md
|
|
||||||
!README.md
|
|
||||||
@@ -2,14 +2,8 @@ root = true
|
|||||||
|
|
||||||
[*]
|
[*]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 4
|
indent_size = 2
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[Makefile]
|
|
||||||
indent_style = tab
|
|
||||||
|
|||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,10 +1 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
coverage/
|
|
||||||
dist/
|
|
||||||
.env
|
|
||||||
.env.*
|
|
||||||
!.env.example
|
|
||||||
*.log
|
|
||||||
.DS_Store
|
|
||||||
*.swp
|
|
||||||
*~
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
node_modules
|
node_modules/
|
||||||
*.min.js
|
*.sh
|
||||||
coverage
|
package-lock.json
|
||||||
dist
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"singleQuote": true,
|
"singleQuote": true,
|
||||||
"trailingComma": "all",
|
"trailingComma": "all",
|
||||||
"tabWidth": 4,
|
"printWidth": 100,
|
||||||
"proseWrap": "always"
|
"tabWidth": 2
|
||||||
}
|
}
|
||||||
|
|||||||
25
Makefile
25
Makefile
@@ -1,28 +1,17 @@
|
|||||||
.PHONY: check test lint fmt fmt-check secret-scan
|
export NODE_ENV := development
|
||||||
|
|
||||||
check: lint fmt-check secret-scan test
|
.PHONY: check install fmt fmt-check secret-scan
|
||||||
|
|
||||||
test:
|
check: install fmt-check secret-scan
|
||||||
@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
|
|
||||||
|
|
||||||
lint:
|
install:
|
||||||
@echo "Linting..."
|
npm install
|
||||||
@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:
|
fmt:
|
||||||
@echo "No formatter configured for shell scripts"
|
npx prettier --write .
|
||||||
|
|
||||||
fmt-check:
|
fmt-check:
|
||||||
@echo "No format check for shell scripts"
|
npx prettier --check .
|
||||||
|
|
||||||
secret-scan:
|
secret-scan:
|
||||||
bash tools/secret-scan.sh .
|
bash tools/secret-scan.sh .
|
||||||
|
|||||||
29
README.md
29
README.md
@@ -12,13 +12,13 @@ One-command deployment of **Radicale CalDAV/CardDAV** on Ubuntu/Debian, pre-conf
|
|||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
| Requirement | Details |
|
| Requirement | Details |
|
||||||
|---|---|
|
| ----------- | ------------------------------------------------- |
|
||||||
| **OS** | Ubuntu 20.04+ / Debian 11+ |
|
| **OS** | Ubuntu 20.04+ / Debian 11+ |
|
||||||
| **Access** | Root (sudo) |
|
| **Access** | Root (sudo) |
|
||||||
| **Ports** | 80 and 443 open to the internet |
|
| **Ports** | 80 and 443 open to the internet |
|
||||||
| **DNS** | A record pointing your domain to this server's IP |
|
| **DNS** | A record pointing your domain to this server's IP |
|
||||||
| **RAM** | 512 MB minimum |
|
| **RAM** | 512 MB minimum |
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@ sudo bash install.sh
|
|||||||
```
|
```
|
||||||
|
|
||||||
The wizard will ask you for:
|
The wizard will ask you for:
|
||||||
|
|
||||||
1. **Domain name** (e.g. `cal.example.com`)
|
1. **Domain name** (e.g. `cal.example.com`)
|
||||||
2. **Email** (for Let's Encrypt SSL)
|
2. **Email** (for Let's Encrypt SSL)
|
||||||
3. **CalDAV username & password**
|
3. **CalDAV username & password**
|
||||||
@@ -41,11 +42,13 @@ The wizard will ask you for:
|
|||||||
## Client Setup
|
## Client Setup
|
||||||
|
|
||||||
### Apple Calendar (macOS / iOS)
|
### Apple Calendar (macOS / iOS)
|
||||||
|
|
||||||
1. Settings → Accounts → Add Account → Other → CalDAV
|
1. Settings → Accounts → Add Account → Other → CalDAV
|
||||||
2. Server: `https://YOUR_DOMAIN`
|
2. Server: `https://YOUR_DOMAIN`
|
||||||
3. Username & password as configured
|
3. Username & password as configured
|
||||||
|
|
||||||
### Thunderbird / GNOME Calendar
|
### Thunderbird / GNOME Calendar
|
||||||
|
|
||||||
- URL: `https://YOUR_DOMAIN/USERNAME/calendar.ics/`
|
- URL: `https://YOUR_DOMAIN/USERNAME/calendar.ics/`
|
||||||
|
|
||||||
## OpenClaw Integration
|
## OpenClaw Integration
|
||||||
@@ -90,12 +93,12 @@ docker compose ps
|
|||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
| Issue | Fix |
|
| Issue | Fix |
|
||||||
|---|---|
|
| --------------------- | ----------------------------------------------------- |
|
||||||
| SSL cert failed | Verify DNS A record; check ports 80/443 are open |
|
| SSL cert failed | Verify DNS A record; check ports 80/443 are open |
|
||||||
| 401 Unauthorized | Check `config/users` file has the correct user entry |
|
| 401 Unauthorized | Check `config/users` file has the correct user entry |
|
||||||
| Container won't start | Check logs: `docker compose logs radicale` |
|
| Container won't start | Check logs: `docker compose logs radicale` |
|
||||||
| Can't sync calendar | Ensure client URL ends with `/username/calendar.ics/` |
|
| Can't sync calendar | Ensure client URL ends with `/username/calendar.ics/` |
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
31
package-lock.json
generated
Normal file
31
package-lock.json
generated
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
package.json
Normal file
9
package.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"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