A minimal email TUI where you read with Markdown and write in Neovim. neomd.ssp.sh/docs
email markdown neovim tui
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

directly sync from local computer to remote

sspaeti cae85a96 5adeb8cd

+45 -22
+1
.goreleaser.yml
··· 17 17 goos: 18 18 - linux 19 19 - darwin 20 + - freebsd 20 21 goarch: 21 22 - amd64 22 23 - arm64
+14 -2
Makefile
··· 143 143 docs-clean: 144 144 $(MAKE) -C docs clean 145 145 146 - sync-headless: 147 - scp neomd-freebsd ti:~/neomd 146 + ## sync-headless: deploy FreeBSD binary to ti server and restart daemon 147 + sync-headless: build 148 + @echo "Copying binary and Makefile to ti..." 149 + scp neomd-freebsd ti:~/.local/bin/neomd 150 + scp scripts/headless-server/Makefile ti:~/Makefile 151 + @echo "Restarting daemon..." 152 + ssh ti "pkill neomd || true; sleep 2; mkdir -p ~/.local/share/neomd; nohup ~/.local/bin/neomd --headless >> ~/.local/share/neomd/daemon.log 2>&1 &" 153 + @echo "Waiting for daemon to start..." 154 + @sleep 2 155 + @echo "Checking status..." 156 + @ssh ti "ps aux | grep '[n]eomd' || echo 'ERROR: neomd is not running'" 157 + @echo "" 158 + @echo "Checking logs for errors..." 159 + @ssh ti "tail -20 ~/.local/share/neomd/daemon.log" 148 160 149 161 ## help: print this list 150 162 help:
+30 -20
scripts/headless-server/Makefile
··· 1 1 # GitHub repository 2 - REPO := sspaeti/neomd 2 + REPO := ssp-data/neomd 3 3 INSTALL_PATH := ~/.local/bin/neomd 4 4 5 5 .DEFAULT_GOAL := run-headless 6 6 7 - ## Reinstall from latest GitHub release and restart daemon 8 - reinstall: stop 9 - @echo "Fetching latest release from GitHub..." 10 - @latest=$$(curl -s https://api.github.com/repos/$(REPO)/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/'); \ 11 - echo "Latest version: $$latest"; \ 12 - echo "Downloading neomd-freebsd..."; \ 13 - curl -L -o /tmp/neomd-freebsd "https://github.com/$(REPO)/releases/download/$$latest/neomd-freebsd"; \ 14 - echo "Installing to $(INSTALL_PATH)..."; \ 15 - mkdir -p ~/.local/bin; \ 16 - mv /tmp/neomd-freebsd $(INSTALL_PATH); \ 17 - chmod +x $(INSTALL_PATH); \ 18 - echo "Done! Installed $$latest" 19 - @$(MAKE) run-headless 20 - @sleep 1 21 - @$(MAKE) status 22 - 7 + ## run-headless: start daemon in background 23 8 run-headless: 24 9 nohup neomd --headless >> ~/.local/share/neomd/daemon.log 2>&1 & 25 10 26 - log: 27 - tail -f ~/.local/share/neomd/daemon.log 28 - 11 + ## restart: stop and restart daemon 29 12 restart: stop run-headless 30 13 14 + ## stop: stop daemon 31 15 stop: 32 16 pkill neomd || true 33 17 sleep 1 34 18 19 + ## status: check if daemon is running 35 20 status: 36 21 ps aux | grep neomd | grep -v grep || echo "neomd is not running" 37 22 23 + ## log: follow daemon logs 24 + log: 25 + tail -f ~/.local/share/neomd/daemon.log 26 + 27 + ## version: show installed version 38 28 version: 39 29 neomd --version 30 + 31 + ## reinstall: download latest GitHub release and restart daemon (requires v0.6.1+) 32 + reinstall: stop 33 + @echo "Fetching latest release from GitHub..." 34 + @latest=$$(curl -s https://api.github.com/repos/$(REPO)/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/'); \ 35 + version=$${latest#v}; \ 36 + echo "Latest version: $$latest"; \ 37 + echo "Downloading neomd_$${version}_freebsd_amd64.tar.gz..."; \ 38 + curl -L -o /tmp/neomd.tar.gz "https://github.com/$(REPO)/releases/download/$$latest/neomd_$${version}_freebsd_amd64.tar.gz"; \ 39 + echo "Extracting..."; \ 40 + tar -xzf /tmp/neomd.tar.gz -C /tmp; \ 41 + echo "Installing to $(INSTALL_PATH)..."; \ 42 + mkdir -p ~/.local/bin; \ 43 + mv /tmp/neomd $(INSTALL_PATH); \ 44 + chmod +x $(INSTALL_PATH); \ 45 + rm -f /tmp/neomd.tar.gz; \ 46 + echo "Done! Installed $$latest" 47 + @$(MAKE) run-headless 48 + @sleep 1 49 + @$(MAKE) status