Here the copy included with the Ubuntu distro. Might help as starting point:
/lib/systemd/system/crate.service
[Unit]
Description=CrateDB Server
Documentation=https://crate.io/docs/
Wants=network.target
After=network.target
[Service]
Type=simple
User=crate
Group=crate
WorkingDirectory=/usr/share/crate
# default environment variables
Environment="CRATE_HOME=/usr/share/crate"
Environment="CRATE_PATH_CONF=/etc/crate"
Environment="CRATE_PATH_LOG=/var/log/crate"
Environment="CRATE_GC_LOG_DIR=/var/log/crate"
Environment="CRATE_HEAP_DUMP_PATH=/var/lib/crate"
# load environment
EnvironmentFile=-/etc/default/crate
ExecStart=/usr/share/crate/bin/crate \
-Cpath.conf=${CRATE_PATH_CONF} \
-Cpath.logs=${CRATE_PATH_LOG}
StandardOutput=journal
StandardError=journal
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0
# SIGTERM signal is used to stop the Java process
KillSignal=SIGTERM
# Send the signal only to the JVM rather than its control group
KillMode=process
# Java process is never killed
SendSIGKILL=no
# When a JVM receives a SIGTERM signal it exits with code 143
SuccessExitStatus=143 SIGTERM SIGKILL
# Override these settings with a file called
# /etc/systemd/system/crate.service.d/crate.conf and specify any changes
# Specifies the maximum number of bytes of memory that may be locked into RAM
LimitMEMLOCK=infinity
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of processes
LimitNPROC=4096
# Specifies limit of virtual memory that can be used
LimitAS=infinity
[Install]
WantedBy=multi-user.target