Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Docker

on:
push:
branches: ["main", "legacy"]
branches: ["main", "legacy", "feature/*", "bugfix/*"]
tags: ["*"]
pull_request:
branches: ["main"]
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ node_modules
.next
.vscode
.DS_Store
.cursorignore
.cursorignore
tsconfig.tsbuildinfo
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,27 +49,29 @@ If you find my projects helpful and want to fuel my late-night coding sessions w
```bash
services:
cronjob-manager:
image: ghcr.io/fccview/cronmaster:1.2.1
image: ghcr.io/fccview/cronmaster:2.3.0
container_name: cronmaster
user: "root"
ports:
# Feel free to change port, 3000 is very common so I like to map it to something else
- "40124:3000"
- "40123:3000"
environment:
- NODE_ENV=production
- DOCKER=true
- NEXT_PUBLIC_CLOCK_UPDATE_INTERVAL=30000
# Legacy used to be NEXT_PUBLIC_HOST_PROJECT_DIR, this was causing issues on runtime.
- HOST_PROJECT_DIR=/path/to/cronmaster/directory
- NEXT_PUBLIC_CLOCK_UPDATE_INTERVAL=30000
# If docker struggles to find your crontab user, update this variable with it.
# Obviously replace fccview with your user - find it with: ls -asl /var/spool/cron/crontabs/
# For multiple users, use comma-separated values: HOST_CRONTAB_USER=fccview,root,user1,user2
# - HOST_CRONTAB_USER=fccview
volumes:
# Mount Docker socket to execute commands on host
- /var/run/docker.sock:/var/run/docker.sock

# These are needed if you want to keep your data on the host machine and not wihin the docker volume.
# DO NOT change the location of ./scripts as all cronjobs that use custom scripts created via the app
# will target this foler (thanks to the HOST_PROJECT_DIR variable set above)
# will target this folder (thanks to the HOST_PROJECT_DIR variable set above)
- ./scripts:/app/scripts
- ./data:/app/data
- ./snippets:/app/snippets
Expand Down Expand Up @@ -235,6 +237,11 @@ I would like to thank the following members for raising issues and help test/deb
<a href="https://github.com/mariushosting"><img width="100" height="100" src="https://avatars.githubusercontent.com/u/37554361?u=9007d0600680ac2b267bde2d8c19b05c06285a34&v=4&s=100"><br />mariushosting</a>
</td>
</tr>
<tr>
<td align="center" valign="top" width="20%">
<a href="https://github.com/DVDAndroid"><img width="100" height="100" src="https://avatars.githubusercontent.com/u/6277172?u=78aa9b049a0c1a7ae5408d22219a8a91cfe45095&v=4&size=100"><br />DVDAndroid</a>
</td>
</tr>
</tbody>
</table>

Expand Down
4 changes: 2 additions & 2 deletions app/_components/BashEditor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ interface BashEditorProps {
label?: string;
}

export function BashEditor({
export const BashEditor = ({
value,
onChange,
placeholder = "#!/bin/bash\n# Your bash script here\necho 'Hello World'",
className = "",
label = "Bash Script",
}: BashEditorProps) {
}: BashEditorProps) => {
const [copied, setCopied] = useState(false);
const editorRef = useRef<HTMLDivElement>(null);
const editorViewRef = useRef<EditorView | null>(null);
Expand Down
2 changes: 1 addition & 1 deletion app/_components/BashSnippetHelper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const categoryIcons = {
"Custom Scripts": Code,
};

export function BashSnippetHelper({ onInsertSnippet }: BashSnippetHelperProps) {
export const BashSnippetHelper = ({ onInsertSnippet }: BashSnippetHelperProps) => {
const [searchQuery, setSearchQuery] = useState("");
const [selectedCategory, setSelectedCategory] = useState<string | null>(null);
const [copiedId, setCopiedId] = useState<string | null>(null);
Expand Down
4 changes: 2 additions & 2 deletions app/_components/CronExpressionHelper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ interface CronExpressionHelperProps {
showPatterns?: boolean;
}

export function CronExpressionHelper({
export const CronExpressionHelper = ({
value,
onChange,
placeholder = "* * * * *",
className = "",
showPatterns = true,
}: CronExpressionHelperProps) {
}: CronExpressionHelperProps) => {
const [explanation, setExplanation] = useState<CronExplanation | null>(null);
const [showPatternsPanel, setShowPatternsPanel] = useState(false);
const [debouncedValue, setDebouncedValue] = useState(value);
Expand Down
Loading