Files
tesseract/internal/template/base_templates.go

60 lines
1.5 KiB
Go

package template
type baseTemplate struct {
Name string `json:"name"`
ID string `json:"id"`
Content string `json:"-"`
}
var baseTemplates = []baseTemplate{fedora40WithSSH, fedora40SSHDocker}
var baseTemplateMap = map[string]baseTemplate{
"empty": {
Name: "Empty",
ID: "empty",
Content: "",
},
"fedora-40-openssh": fedora40WithSSH,
"fedora-40-openssh-docker": fedora40SSHDocker,
}
var fedora40WithSSH = baseTemplate{
Name: "Fedora 40 With OpenSSH Server",
ID: "fedora-40-openssh",
Content: `FROM fedora:40
ARG user
ARG password
RUN dnf install -y openssh-server \
&& mkdir -p /etc/ssh \
&& ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key \
&& useradd "$user" \
&& echo "$user:$password" | chpasswd \
&& usermod -aG wheel "$user"
CMD ["/usr/sbin/sshd", "-D"]
`,
}
var fedora40SSHDocker = baseTemplate{
Name: "Fedora 40 + OpenSSH Server + Docker",
ID: "fedora-40-openssh-docker",
Content: `FROM fedora:40
ARG user
ARG password
RUN dnf install -y openssh-server dnf-plugins-core \
&& dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo \
&& dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \
&& mkdir -p /etc/ssh \
&& ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key \
&& useradd "$user" \
&& echo "$user:$password" | chpasswd \
&& usermod -aG wheel,docker "$user"
CMD ["/usr/sbin/sshd", "-D"]
`,
}