2024-05-30 17:24:56 +00:00
<!DOCTYPE html>
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en-us" lang = "en-us" >
< head >
< script defer language = "javascript" type = "text/javascript" src = "/js/bundle.min.14549c76bbc96f0af1574b0259efd70e52908cd36fb4d14ed3d290a1b6479eae.js" > < / script >
< meta http-equiv = "content-type" content = "text/html; charset=utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< link rel = "icon" href = images/tiger.png >
<!-- Open Graph image and Twitter Card metadata -->
< title itemprop = "name" > tinfoil-hat.net - Proxmox Docker Workstation< / title >
< meta property = "og:title" content = tinfoil-hat.net - Proxmox Docker Workstation / >
< meta name = "twitter:title" content = tinfoil-hat.net - Proxmox Docker Workstation / >
< meta itemprop = "name" content = tinfoil-hat.net - Proxmox Docker Workstation / >
< meta name = "application-name" content = tinfoil-hat.net - Proxmox Docker Workstation / >
< meta property = "og:site_name" content = "" / >
< meta name = "description" content = "" / >
< meta itemprop = "description" content = "" / >
< meta property = "og:description" content = "" / >
< meta name = "twitter:description" content = "" / >
< base href = "/posts/proxmox-docker-workstation/" / >
< link rel = "canonical" href = "/posts/proxmox-docker-workstation/" itemprop = "url" / >
< meta name = "url" content = "/posts/proxmox-docker-workstation/" / >
< meta name = "twitter:url" content = "/posts/proxmox-docker-workstation/" / >
< meta property = "og:url" content = "/posts/proxmox-docker-workstation/" / >
< meta property = "og:updated_time" content = "2023-10-23T05:50:36+02:00" / >
< link rel = "sitemap" type = "application/xml" title = "Sitemap" href = '/sitemap.xml' / >
< meta name = "robots" content = "index,follow" / >
< meta name = "googlebot" content = "index,follow" / >
< meta name = "twitter:site" content = "" / >
< meta name = "twitter:creator" content = "" / >
< meta property = "fb:admins" content = "" / >
< meta name = "apple-mobile-web-app-title" content = "" / >
< meta name = "apple-mobile-web-app-capable" content = "yes" / >
< meta name = "apple-mobile-web-app-status-bar-style" content = "black" / >
< meta name = "generator" content = "Hugo 0.111.3" >
< link type = "text/css" rel = "stylesheet" href = "/css/bundle.min.94a339836f89f0d25f31980cb6b0631da21e20af128308747ce44e0525eb16ef.css" >
< style >
body {
--sidebar-bg-color: #202020;
--sidebar-img-border-color: #515151;
--sidebar-p-color: #909090;
--sidebar-h1-color: #FFF;
--sidebar-a-color: #FFF;
--sidebar-socials-color: #FFF;
--text-color: #222;
--bkg-color: #FAF9F6;
--post-title-color: #303030;
--list-color: #5A5A5A;
--link-color: #268BD2;
--date-color: #515151;
--table-border-color: #E5E5E5;
--table-stripe-color: #F9F9F9;
--code-color: #000;
--code-background-color: #E5E5E5;
--code-block-color: #FFF;
--code-block-background-color: #272822;
--moon-sun-color: #FFF;
--moon-sun-background-color: #515151;
}
body.dark-theme {
--text-color: #EEE;
--bkg-color: #121212;
--post-title-color: #DBE2E9;
--list-color: #9D9D9D;
--link-color: #268BD2;
--date-color: #9A9A9A;
--table-border-color: #515151;
--table-stripe-color: #202020;
--code-color: #FFF;
--code-background-color: #515151;
--code-block-color: #FFF;
--code-block-background-color: #272822;
}
body {
background-color: var(--bkg-color);
}
< / style >
< / head >
< body class = "" >
< div class = "wrapper" >
< aside class = "sidebar" >
< div class = "container sidebar-sticky" >
< div class = "light-dark" align = "right" >
< button class = "btn-light-dark" title = "Toggle light/dark mode" >
< svg class = "moon" xmlns = "http://www.w3.org/2000/svg" width = "1em" height = "1em" viewBox = "0 0 16 16" >
< path fill = "currentColor" d = "M6 .278a.768.768 0 0 1 .08.858a7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277c.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316a.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71C0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z" / >
< / svg >
< svg class = "sun" xmlns = "http://www.w3.org/2000/svg" width = "1em" height = "1em" viewBox = "0 0 16 16" >
< path fill = "currentColor" d = "M8 12a4 4 0 1 0 0-8a4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z" / >
< / svg >
< / button >
< / div >
< div class = "sidebar-about" >
< h1 class = "brand" >
< a href = "/" >
< img src = "/images/tiger.png" alt = "brand image" >
< / a >
< a href = "/" >
< h1 > tinfoil-hat.net< / h1 >
< / a >
< / h1 >
< p class = "lead" >
A secure home for every tinfoil-hat
< / p >
< / div >
< nav >
< ul class = "sidebar-nav" >
< li class = "heading" >
< a href = "/posts/" > Posts< / a >
< / li >
< li class = "sub-heading" >
Recent
< / li >
< li class = "bullet" >
2024-05-30 22:57:15 +00:00
< a href = "/posts/gpu-passtrough-mint21/" > Gpu Passtrough Mint21< / a >
2024-05-30 17:24:56 +00:00
< / li >
< li class = "bullet" >
2024-05-30 22:57:15 +00:00
< a href = "/posts/vbox-autostart/" > Vbox Autostart< / a >
2024-05-30 17:24:56 +00:00
< / li >
< li class = "bullet" >
2024-05-30 22:57:15 +00:00
< a href = "/posts/bst/" > BST< / a >
2024-05-30 17:24:56 +00:00
< / li >
< li class = "heading" >
< a href = "/unixporn/" > Unixporn< / a >
< / li >
< li class = "heading" >
< a href = "/webring/" > Webring< / a >
< / li >
< / ul >
< / nav >
< a target = "_blank" class = "social" title = "Gitlab" href = "https://git.tinfoil-hat.net" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "1.2em" height = "1.2em" viewBox = "-2 -2.5 24 24" >
< path fill = "currentColor" d = 'M10.006 18.443L6.326 7.118h7.36l-3.68 11.325zm0 0L1.168 7.118h5.158l3.68 11.325zM1.168 7.118l8.838 11.325-9.68-7.032a.762.762 0 0 1-.276-.852l1.118-3.441zm0 0L3.385.296a.38.38 0 0 1 .724 0l2.217 6.822H1.168zm8.838 11.325l3.68-11.325h5.157l-8.837 11.325zm8.837-11.325l1.119 3.441a.762.762 0 0 1-.277.852l-9.68 7.032 8.838-11.325zm0 0h-5.157L15.902.296a.38.38 0 0 1 .725 0l2.216 6.822z' / >
< / svg >
< / a >
< a target = "_blank" class = "social" title = "YouTube" href = "https://tube.tinfoil-hat.net" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "1.2em" height = "1.2em" viewBox = "0 0 24 24" >
< path fill = "currentColor" d = "M12.006 19.012h-.02c-.062 0-6.265-.012-7.83-.437a2.5 2.5 0 0 1-1.764-1.765A26.494 26.494 0 0 1 1.986 12a26.646 26.646 0 0 1 .417-4.817A2.564 2.564 0 0 1 4.169 5.4c1.522-.4 7.554-.4 7.81-.4H12c.063 0 6.282.012 7.831.437c.859.233 1.53.904 1.762 1.763c.29 1.594.427 3.211.407 4.831a26.568 26.568 0 0 1-.418 4.811a2.51 2.51 0 0 1-1.767 1.763c-1.52.403-7.553.407-7.809.407Zm-2-10.007l-.005 6l5.212-3l-5.207-3Z" / >
< / svg >
< / a >
< a target = "_blank" class = "social" title = "RSS Feed" href = "/posts/index.xml" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "1em" height = "1.2em" viewBox = "0 0 1280.000000 1280.000000" >
< g transform = "translate(0.000000,1280.000000) scale(0.100000,-0.100000)" fill = "currentColor" >
< path d = "M2295 11929 c-284 -12 -642 -45 -707 -65 -17 -5 -18 -63 -18 -1039 0 -569 4 -1036 8 -1039 5 -3 74 6 153 19 510 86 1168 95 1789 25 1348 -153 2602 -677 3670 -1531 385 -308 820 -744 1126 -1129 842 -1060 1362 -2313 1514 -3650 70 -621 61 -1279 -25 -1789 -13 -79 -22 -148 -19 -153 3 -4 471 -8 1039 -8 l1035 0 5 23 c51 225 85 942 67 1419 -23 605 -77 1044 -198 1617 -294 1400 -927 2734 -1823 3846 -1043 1295 -2364 2259 -3909 2854 -1158 447 -2451 656 -3707 600z" / >
< path d = "M2255 7845 c-269 -25 -620 -81 -667 -106 -17 -9 -18 -55 -18 -899 0 -706 3 -890 13 -890 6 0 66 18 132 41 130 44 288 79 467 105 154 21 577 30 749 15 1207 -107 2267 -823 2814 -1902 166 -327 268 -637 330 -1001 38 -227 48 -384 42 -662 -8 -348 -44 -590 -126 -831 -23 -66 -41 -126 -41 -132 0 -10 184 -13 890 -13 844 0 890 1 899 18 27 50 88 452 110 725 14 162 14 624 1 782 -59 703 -233 1323 -545 1945 -481 956 -1313 1788 -2270 2268 -620 310 -1239 483 -1940 542 -165 14 -669 10 -840 -5z" / >
< path d = "M2519 3815 c-391 -66 -725 -336 -868 -703 -79 -201 -96 -462 -45 -677 83 -344 338 -641 666 -774 116 -47 205 -69 330 -80 412 -39 811 153 1040 500 193 292 240 648 128 981 -135 403 -492 699 -914 757 -100 14 -241 12 -337 -4z" / >
< / g >
< / svg >
< / a >
< a target = "_blank" class = "social" title = "Email" href = "mailto://mail@tinfoil-hat.net" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "1em" height = "1.2em" viewBox = "0 0 485.211 485.211" >
< path fill = "currentColor" d = "M301.393,241.631L464.866,424.56H20.332l163.474-182.928l58.801,51.443L301.393,241.631z M462.174,60.651H23.027 l219.579,192.142L462.174,60.651z M324.225,221.67l160.986,180.151V80.792L324.225,221.67z M0,80.792v321.029L160.972,221.64 L0,80.792z" / >
< / svg >
< / a >
< p class = "footnote" >
powered by < a target = "_blank" href = "https://gohugo.io" > Hugo< / a > | themed with < a target = "_blank" href = "https://github.com/lukeorth/poison" > poison< / a >
< br >
© 2024 . All rights reserved.
< / p >
< / div >
< / aside >
< main class = "content container" >
< div class = "post" >
< div class = "info" >
< h1 class = "post-title" >
< a href = "/posts/proxmox-docker-workstation/" > Proxmox Docker Workstation< / a >
< / h1 >
< div class = "headline" >
< div >
< time datetime = " 2023-10-23T05:50:36+0200" class = "post-date" >
October 23, 2023
< / time >
< span > - < / span >
< span class = "reading-time" >
< span > 2 mins read< / span >
< / span >
< / div >
< ul class = "tags" >
< li class = "tag-Linux" >
< a href = "/tags/linux" > Linux< / a >
< / li >
< li class = "tag-Server" >
< a href = "/tags/server" > Server< / a >
< / li >
< li class = "tag-Technology" >
< a href = "/tags/technology" > Technology< / a >
< / li >
< / ul >
< / div >
< / div >
< h2 id = "install-linux-mint-debian-edition-6" > Install Linux Mint Debian Edition 6< / h2 >
< p > I am assuming, that you want to use a Debian based Operating System (not Ubuntu based) and you want Proxmox, Docker and GPT4All installed on your Laptop. Here I am using Linux Mint Debian Edition 6< / p >
< h3 id = "lets-get-started" > let’ s get started:< / h3 >
< p > Go trough installation process< / p >
< p > < img src = "/images/mint-install.png" alt = "mintinstall" > < / p >
< h2 id = "install-proxmox-ve" > Install Proxmox VE< / h2 >
< p > Upgrade the system and install some basic tools< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > sudo apt update < span style = "color:#f92672" > & & < / span > sudo apt dist-upgrade -y
< / span > < / span > < span style = "display:flex;" > < span > sudo apt install vim git curl wget htop ssh netcat-traditional openvpn
< / span > < / span > < / code > < / pre > < / div > < p > Cerate a Interface used for LXC Containers:
edit < code > /etc/network/interfaces< / code > < / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > auto lo
< / span > < / span > < span style = "display:flex;" > < span > iface lo inet loopback
< / span > < / span > < span style = "display:flex;" > < span >
< / span > < / span > < span style = "display:flex;" > < span > auto enp2s0
< / span > < / span > < span style = "display:flex;" > < span > iface enp2s0 inet static
< / span > < / span > < span style = "display:flex;" > < span > address 10.10.20.254/24
< / span > < / span > < span style = "display:flex;" > < span >
< / span > < / span > < span style = "display:flex;" > < span > post-up echo < span style = "color:#ae81ff" > 1< / span > > /proc/sys/net/ipv4/ip_forward
< / span > < / span > < span style = "display:flex;" > < span > post-up iptables -t nat -A POSTROUTING -s < span style = "color:#e6db74" > ' 10.10.20.0/24' < / span > -o enp0s3 -j MASQUERADE
< / span > < / span > < span style = "display:flex;" > < span > post-down iptables -t nat -D POSTROUTING -s < span style = "color:#e6db74" > ' 10.10.20.0/24' < / span > -o enp0s3 -j MASQUERADE
< / span > < / span > < span style = "display:flex;" > < span >
< / span > < / span > < span style = "display:flex;" > < span > source /etc/network/interfaces.d/*
< / span > < / span > < / code > < / pre > < / div > < p > Edit hosts file, needed to install proxmox successfully
< code > vim /etc/hosts< / code > < / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > 127.0.0.1 localhost
< / span > < / span > < span style = "display:flex;" > < span > 10.10.20.254 devstation.proxmox.local devstation
< / span > < / span > < / code > < / pre > < / div > < p > < code > hostname --ip-address< / code > < br >
127.0.0.1 10.10.20.254 # should return your IP address here< / p >
< p > Add Proxmox Repos and gpg key< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > echo < span style = "color:#e6db74" > " deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" < / span > > /etc/apt/sources.list.d/pve-install-repo.list
< / span > < / span > < span style = "display:flex;" > < span > wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
< / span > < / span > < / code > < / pre > < / div > < p > Upgrade Packagebase, Install Proxmox Kernel and reboot< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > apt update < span style = "color:#f92672" > & & < / span > apt full-upgrade
< / span > < / span > < span style = "display:flex;" > < span > apt install pve-kernel-6.2
< / span > < / span > < span style = "display:flex;" > < span > systemctl reboot
< / span > < / span > < / code > < / pre > < / div > < p > Install Proxmox, remove Debian Kernel, update Grub bootloader and remove os-prober< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > apt install proxmox-ve postfix open-iscsi chrony
< / span > < / span > < span style = "display:flex;" > < span > apt remove linux-image-amd64 < span style = "color:#e6db74" > ' linux-image-6.1*' < / span >
< / span > < / span > < span style = "display:flex;" > < span > update-grub
< / span > < / span > < span style = "display:flex;" > < span > apt remove os-prober
< / span > < / span > < / code > < / pre > < / div > < p > We log into the webinterface with root user, so it needs to have a password< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > sudo -i
< / span > < / span > < span style = "display:flex;" > < span > passwd
< / span > < / span > < / code > < / pre > < / div > < p > Now navigate to your browser with this URL
https://127.0.0.1:8006< / p >
< p > Accept the security exception and enter your root password< / p >
< p > < img src = "/images/exception.png" alt = "exception" > < / p >
< p > Now you should see this dashboard< / p >
< p > < img src = "/images/dashboard.png" alt = "dashboard" > < / p >
< h2 id = "install-docker-and-portainer" > install Docker and Portainer< / h2 >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > sudo apt install docker.io docker-compose
< / span > < / span > < span style = "display:flex;" > < span > sudo docker volume create portainer_data
< / span > < / span > < span style = "display:flex;" > < span > sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart< span style = "color:#f92672" > =< / span > always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
< / span > < / span > < / code > < / pre > < / div > < p > Now you can navigate to the Docker Webinterface< / p >
< p > https://127.0.0.1:9443< / p >
< p > you should see something like this< / p >
< p > < img src = "/images/portainer.png" alt = "portainer" > < / p >
< h2 id = "install-gpt4all" > Install GPT4All< / h2 >
< p > comes in very hand for basic questions< / p >
< div class = "highlight" > < pre tabindex = "0" style = "color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;" > < code class = "language-bash" data-lang = "bash" > < span style = "display:flex;" > < span > wget https://gpt4all.io/installers/gpt4all-installer-linux.run
< / span > < / span > < span style = "display:flex;" > < span > sudo chmod +x gpt4all-installer-linux.run
< / span > < / span > < span style = "display:flex;" > < span > mkdir ~/Desktop
< / span > < / span > < span style = "display:flex;" > < span > ./gpt4all-installer-linux.run
< / span > < / span > < span style = "display:flex;" > < span > mv ~/Desktop/GPT4All.desktop ~/.local/share/applications/
< / span > < / span > < / code > < / pre > < / div > < p > Now download a Language Model via GUI:< / p >
< p > < img src = "/images/models.png" alt = "models" > < / p >
< p > < strong > GPT4All is now ready to answer your questions< / strong > < / p >
< p > < img src = "/images/gpt4all.png" alt = "gpt4all" > < / p >
< hr >
< div class = "footer" >
< a class = "previous-post" href = "/posts/local-apt-mirror/?ref=footer" > < span style = "font-weight:bold;" > « Previous< / span > < br > Local Apt Mirror< / a >
< div class = "next-post" >
< a href = "/posts/bookmarks/?ref=footer" > < span style = "font-weight:bold;" > Next »< / span > < br > Bookmarks< / a >
< / div >
< / div >
< / div >
< / main >
< div class = "article-toc " >
< div class = "toc-wrapper" >
< h4 id = "contents" > < / h4 >
< nav id = "TableOfContents" >
< ul >
< li > < a href = "#install-linux-mint-debian-edition-6" > Install Linux Mint Debian Edition 6< / a >
< ul >
< li > < a href = "#lets-get-started" > let’ s get started:< / a > < / li >
< / ul >
< / li >
< li > < a href = "#install-proxmox-ve" > Install Proxmox VE< / a > < / li >
< li > < a href = "#install-docker-and-portainer" > install Docker and Portainer< / a > < / li >
< li > < a href = "#install-gpt4all" > Install GPT4All< / a > < / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< / body >
< / html >