Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.

Learn WEB?

K
kll Posted 17 days agoSoftware
i was asked how to start learning 'to CODE'?
and well, i recommended to start with web and HTML.

* and back then i even prepared my old laptop with 'KDE plasma neon'
as a beginner LINUX environment, but that move was not ?understood?accepted.

now, some month later, i suddenly read: 'Now i ready to learn coding'



overview:



> basic language skills:
HTML
JS
SQL
> servers:
deploy to WEB-SERVER
GIT...
NGINX server on a Raspberry PI
SAMBA server
Arduino IDE & WiFi microprocessors
> JS development environments:
RPI3
Node JS
BUN
Node Server
Bun Server
Bun serve index.html
Bun HONO
EXPRESS
NODE NEXT
BUN and SQLite
> CMS Content Management System:
WordPress
> docker apps:
Portainer
Nextcloud
COCKPIT
connect
> restart with Linux Lite and home server
home server
CASA OS


HTML


see also Hypertext Markup Language wiki
i recommend w3schools
what even offers a free space if you want to 'show off' to friends or teacher (FREE: 500 limited clicks / page impressions per month / 25MB data transfer / 20MB storage).
i used it to test a 'Layout Flexbox' what i later used inside ESP and PICO W webservers
but as a basic start best is to make a
HTML TEMPLATE ( index.html file on desktop can open by double click with browser / no server needed )
one HTML file where you test interesting HTML code lines
and that file can be your 'cheat sheet' source to copy from forever
index.html

more see at the GIT for this project,
the HTML template example


now might want to learn about 'style' like change colors...
by using the 3 ways:

CSS can be added to HTML documents in 3 ways:
Inline - by using the style attribute inside HTML elements
Internal - by using a style element in the head section
External - by using a link element to link to an external CSS file



for a full page layout might look into something like FLEX BOX...
and test it by changing the browser window size ( and also view it from a phone browser )

Layout

FLEX BOX

TRY FLEX BOX

YouTube: Learn CSS Flexbox in 20 Minutes (Course)


also a good idea is to try some online examples for ready HTML page templates,
but look for FREE! and also pls. respect the COPY RIGHT

while they look nice already, it is still some work to use them for your own project.
try examples like from: html5up



JS


HTML pages might need 'enhancement / functionality' using JS Java Script
what is much more like a programming language ( HTML is not considered programming )
/ but is it a scripting language ( and never compiled ) interpreted
inside your browser ( sometime also inside your server )
by a build in interpreter, most used: V8

but usually you not start from scratch...
more like you load a 'ready tool' at the header of an HTML file ( what might be loaded from internet or your sever )
and later just use it ( like for some user interaction )
see jQuery or Bootstrap

but a very basic thing would be:

index.html:
:inside html header use:
 < script type="text/javascript" src="script.js"> < / script>




script.js:
:add code
 console.log('run script.js');



at the GIT for this is a example of JS starting with inline script
- using a function ( with 2 parameters ) to display text
- using a array of texts and display it in a FOR loop.
at GIT

if you want reuse your script better put it in a extra file ( script.js ) on your server,
but also depends, if you are comfortable with editing 2 files
or more like one 'long (HTML & JS) code'..



about JS, there is a niche JS app ?for artists? what is rarely used in web dev, but very powerful
PROCESSING has a JAVA a JS ( now also a PYTHON ) version
for make graphics even interactive / pls find its script online editor
there is a interactive online video:
p5js intro


while i often play ( on RPI ) with
NODE JS or BUN
and testing various examples ( and frameworks like REACT, HONO ... ) , i actually have not found a free web space where i could use THAT to go online with it?

possibly must rent a 'dedicated server' like from hetzner.com
a great ( and NOT USA controlled ) online service.

but actually THIS BLOG HERE runs on hoster dreamhost.com
i got sponsored space AND even domain name payments from a friend

that is NOT FREE & credit card ( possibly passport ) required

normally you use Node / Bun ( and a optional framework ) for development
and when ready you BUILD it into a static site,
what you can copy under a apache / nginx server for production use.


so while learning HTML is more a high-school thing, then what makes a web developer?

(a) server setup? like learn how to make a web-server ( old style LAMP Linux, Apache, MySQL, and PHP )

(b) site setup? code HTML / add JS frameworks /

OR install a CMS Content Management System, tweak it on 'theme' ..look
and train customer to use/fill it
typically something like WordPress

(c) site secure it and increase its SEO (Search Engine Optimization)


SQL


and with that it might come with the need to use a background database
( what contains tables with data ... up to the whole page content.. )

yes, need to learn to setup databases with tables,
and to write the code to use that data
C R U D Create / Read / Update / Delete
the used language would be SQL Structured Query Language

a easy start would be w3schools.com/sql/
or install SQLite

sudo apt install sqlite3
what can be used also from command line, or via PYTHON

and just to check on the database from desktop also might install
sudo apt install sqlitebrowser



deploy to WEB-SERVER


(1) now professionally you would go for a
* payed web-space and
* buy a domain name
( what requires provide passport copy and pay yearly via credit card for both )


(2) but as a beginner ( esp. student ?minor ) i would only look for FREE stuff / workarounds
i use
byet.host ( free and ADD free ) for 15 years
OLD BLOG
where i installed php-fusion CMS ( now obsolete )

today i would first checkout on infinityfree.com
ok, i did and see

- WARNING! actually they say the FREE account now NOT includes most tools ?
so i start with just making a index.html only: infinityfree.me
- funny, it seems to be the same hoster as my old OLD BLOG
and run into problems just by upload one more picture..

so 2 other hoster to test:
netlify.com

tiiny.host

? or a free CMS account ( no coding required )
i also use a free Wordpress account
a great start for a BLOG

and one recommendable way to show off ( have a public page ) as a coder:

GIT...


usually this is for saving and publishing code repositories ( esp. if you support open source )
but it also allows a kind of home page ( per user (or repository))
github-pages
long time ago i made one for a processing tutorial ( using a HTML5up template )

and also a full interactive 3D view / electric design tool /
where all the (electric ) math in the HTML text section is dynamic depending on your input / selection
online calc and 3D view

or
(3) build a

local work environment

like home 'lab' web-server

NGINX server on a Raspberry PI



where here i work local on
* a linux 'UBUNTU 25.04' desktop PC ( KATE editor ) and

* transfer the tested HTML file to a
** (headless aka power & ethernet only) RPI2 ( from 2015) with
** docker NGINX web server
** ( using 'MC' login network where usually webserver are accessed via FTP )

* and then back on desktop call that page from there via browser:






so here more about the setup of that RPI

*1 use RPI imager to burn a uSD card ( or USB stick if boot enabled already )
allow SSH login for remote access ( headless )

for to explore RPI world best use Raspberry Pi OS today
* 64bit version
* with desktop and recommended software ( 3GB ) OR the smaller version ( 1.1GB ) can install add software easily
today its Debian version 12 (bookworm)

*2 boot ( on ethernet connection ) and find network IP of that RPI and SSH remote login

*3 update and install tools like
MC midnight-commander
* a 2 window file-manager
* what lets you use Linux terminal without knowing Linux commands
* and also works in a remote shh terminal ( what desktop file-manager can NOT do )
* and allow networking ( so i also use it on my main Linux desktop PC ) like for file transfer

& give fix IP ( here for a RPI2 [192.168.1.102] )
using the NETWORK MANAGER Command Line Interface
sudo nmcli c show
sudo nmcli c mod 'Wired connection 1' ipv4.addresses 192.168.1.102/24 ipv4.method manual
sudo nmcli con mod 'Wired connection 1' ipv4.gateway 192.168.1.1
sudo nmcli con mod 'Wired connection 1' ipv4.dns "10.10.30.1 8.8.8.8 8.8.4.4"

sudo cat /etc/NetworkManager/system-connections/'Wired connection 1.nmconnection'



& install docker
curl -sSL https://get.docker.com | sh

*4 check docker by new made alias in file /home/pi/.bash_aliases :
alias dinfo='echo "___ INFO" && sudo docker info && echo "___ CONTAINER" && sudo docker ps --all && echo "___ IMAGES" && sudo docker images && echo "___ NETWORKS" && sudo docker network ls && echo "___ VOLUMES" && sudo docker volume ls'

call it with
dinfo

*5 install NGINX in a docker container
prepare a user dir:
/home/pi/Projects/nginx/
and make a index.html file in it ( containing minimal a text line ) .

setup docker NGINX:
sudo docker run -it --restart unless-stopped -d -p 8080:80 --name web -v ~/Projects/nginx:/usr/share/nginx/html nginx

and call it from other network browser via:
http://192.168.1.102:8080/


now learn how to copy a local tested *.html file
via network to that server source dir
RPI2: /home/pi/Projects/nginx/



for working HEADLESS
if your working environment is a windows PC i recommend to install bitvise ssh-client
what gives a remote SSH terminal and a file transfer tool to handle a headless RPI in your LAN

and also RealVNC® Viewer for Windows
if VNC server in RPI is enabled by sudo rapsi-config / 3. interface options / I3 VNC enable /
so can see / work from windows/linux PC your RPI




as my RPI2 is build into a RPI cluster ( tower of RPI2 / RPI3 / RPI4 ) i try
same on a even older RPI1 ( from 2011 ) fixIP [192.168.1.101] ( ethernet / has no WIFI / and only 2 USB2 / )
run updated Raspberry Pi OS desktop 32bit on a 16GB uSD in a SD card holder as no uSD slot!




RPI1 original setup

and now add: docker & nginx install works fine.


while ssh and filetransfer works fine ( can use like filezilla... SFTP to RPI )
there is a more easy way: install use

SAMBA server


sudo apt install -y samba

sudo nano /etc/samba/smb.conf
#add at end:
[RPI1_share]
path = /home/pi/Projects/nginx
writeable = yes
browseable = yes
public = no


sudo smbpasswd -a pi
pw
pw

sudo systemctl restart smbd

now from PC can use file-manager / network / find RPIx
login ( pi / pw ) required and use that exposed path like a network drive


example html code from my RPI nginx server at GIT




here is something you would not expect,
but i think it is a valid learning approach:
try HTML projects with

Arduino IDE


arduino.cc/en/software
using a WIFI micro controller board as web-server.

while that idea with a RPI as local web-server ( and it can do much more like file server / linux desktop .. )
is nothing big ( and above see here i use a old RPI for it, what not really would be used as internet browser desktop PC )

there is a even cheaper way, interesting for all who might want to tinker...
buy a
* ESP or
* RPI PICO W

micro controller board and code your HTML inthere.





you see even on a 6$ WIFI computer like ESP or PICO W can make
* web-server
* user login protection ( of operation )
* link menu
* header / link menu / content / about / footer
* as responsive layout
* dynamic content
* operation 'buttons'

* timesync
* send data worldwide / remote MQTT

by a combination of Arduino C++ calls and HTML source code
compiled and uploaded from a Arduino IDE PC to that target board / here a PICO 2W
raspberry-pi-pico-2-w-review

main BLOG for that ESP32S3/PICOW combi project

and its code repository at GIT


RPI3


some hardware info, while the whole Raspberry Pi idea is about learning Linux and coding ( PYTHON )
RPI1 AND RPI2 can be used for a little server,
RPI3 already can use internet / browser ( but NOT: YouTube videos or even VScode )
RPI4 could use as mini office PC
RPI5 can even connect a M2_nvme SSD ( but i not buy until now )

I just got back my second 'RPI3 B V1.2'
and re-burn the uSD for it with same setup as above...
but then connect ( on USB2 only ) a USB3 UGREEN sata TEAM 120GB SSD
and use the included 'SD copy tool' to transfer the OS.
for test using drive bench
Disk Read 33.81 MB/s
Disk Write 20.5 MB/s
a disappointing : Score: 2132
result details

but improved, compared to the initially used uSD 32GB Samsung evo:
Disk Read 21.73 MB/s
Disk Write 8.5 MB/s
and a terrible : Score: 980






and first try the samba share ( from Ubuntu 25 PC )



and using 2 file-manager windows ( drag drop ) to copy last 'webwork' templates


anyhow this is now more suitable for learning Raspberry Pi, Linux as the RPI1
but i want also try the 'learn WEB' next step:
NODE / BUN JS environment ( with some frameworks )
? deployment to NGINX


so while it looks professional ( and easy to handle )
to install / use first

nvm Node Version Manager


in my line of work i not use it, as it created problems with a other server tool i use / develop with / frequently: 'Node red'
so here ( now the RPI3 ) a installation of

Node JS


deep dive video
I try to install the newest semiautomatic:
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -

sudo apt install -y nodejs

and check:
sudo node -v
shows v24.5.0
sudo npm -v
shows 11.5.1

better reboot

well it is not the job now, but be aware that you can use JS also
to play with the RPI hardware ( GPIO ) see w3schools.com/nodejs


alternative to Node can install ( additionally ) but as a future replacement of Node

BUN


! need to have a arch64 system or install will fail without warning !

curl -fsSL https://bun.com/install | bash
( need to refresh terminal ) and check:
bun -v
shows 1.2.20



for play, first better make new subdirs like:
mkdir /home/pi/Projects/NODE/
mkdir /home/pi/Projects/BUN/

under there can start some projects.

pls understand that even the smallest example will
get/download tools from internet, often megabyte and hundred of files...
what makes it difficult to make backup / or cleanup later...
( so drive space is a issue )
i use a alias ( in file .bash_aliases )
alias dh='df -Th && lsblk'
what shows 7GB of 111GB ( root drive ) used already
and
alias treesize='tree --du -h'
to find where all the space is used


so first would be just to start a development server,



cd /home/pi/Projects/NODE/

Node Server


mkdir dev
cd dev
npm init

( modify the scrip part of 'packet.json' )
and create a

index.js
// Import the HTTP module
const http = require('http');
const PORT = 3000;
const HOST = '0.0.0.0'

// Create a server object
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World from NODE servern');
});
// start server
server.listen(PORT, HOST, () => {
console.log('Server running at http://'+HOST+':'+PORT+'/');
});



node run index.js
and see: Server running at ...
start browser and see

Hello, World from NODE server!






working environment


above show to work in RPI desktop,
use the installed
* GEANY IDE for file editing,
* mc for file handling
* terminal for start node app
* local browser call 0.0.0.0 or localhost

if work remotely better have 2 remote terminal windows open with
* nano index.js
for edit ( [ctrl][o][enter] save after edit but not need to close )
* node index.js
for run

and a ( remote ) browser window to http://192.168.1.103:3000
( remote only works if HOST == '0.0.0.0' , not if it is 'localhost' )

but i have a Ubuntu 25.04 desktop i work from
where i have 'kate' installed
and in a terminal can use for a RPI3 remote file:

kate sftp://192.168.1.103/home/pi/Projects/BUN/dev/index.ts
user pi
pw

but i do have VScode on my RPI4
and can use it ( remote SSH extension ( need configure hosts first ))
[F1] remote SSH
pi@192.168.1.103
pw




to ssh open RPI3 files







similar to Node now:

Bun Server


cd /home/pi/Projects/BUN/
mkdir dev
cd dev
bun init
( type: blank )
that here already install 7 packages,
and allow directly to use
bun run index.ts
but only does a console print
( yes, its .ts type script instead java script // just more safe ??? )
( check treesize : 29MB !!! )
now that we rewrite to do a similar server job as in our Node test.

index.ts
const server = Bun.serve({
port: 3000,
hostname: '0.0.0.0',
fetch(req) {
return new Response("Hello, World from Bun servern");
},
});

console.log(`Listening on http://${server.hostname}:${server.port} `);



Note:
when you print ( .log ) at server start
http://0.0.0.0:3000
it will appear at console already 'context sensitive' ( underscored ) aka can right click, and allow to start it in local browser.
there are many examples out there what not follow the correct syntax and not work this way.
but best is to print the real IP like
http://192.168.1.103:3000
what can be used to start in remote browser too.


Bun serve index.html


well printing a static text into a browser window is low level..
we started in ?windows?linux? desktop, made a file 'index.html'
and double click it to see the result in browser
to do same in node / bun seems very difficult
i did complain about that ( need a GIT account and file a issue at BUN )
( actually not because it does NOT WORK, i complained that it shows a WRONG ERROR response )
GIT issues
and got a lot of bad comments for it, not only at that issue post, even at 'twitter'
BUT somehow i got through to him and that feature is now added:
bun docs
mkdir index_html
cd index_html
touch index.html
nano index.html
bun index.html


but the good way would be still to call the index.html
from inside the index.ts

index.ts
import { serve } from "bun";

const server = serve({
fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/") {
return new Response(Bun.file("./index.html"));
}
return new Response("Not Found", { status: 404 });
},
port: 3000,
hostname: '0.0.0.0',
});

console.log(`Bun server listening on http://${server.hostname}:${server.port} `);



run into heavy problems with NODE and BUN using newer versions like VITE / REACT ...
what not work on Raspberry Pi ?anymore? ( try on RPI3 and RPI4 )
as i have a 2 year old vite app what still works well with newest BUN
possibly can install Node / Bun on Ubuntu PC ?

and next we explore the use of a often used framework

Bun HONO


see here
and i test:
* serve favicon and image
* serve static


src/index.ts
import { Hono } from 'hono'
import { serveStatic } from 'hono/bun'

const app = new Hono()

//app.get('/', (c) => {
// return c.text('Hello Hono!')
//})

app.use('/static/*', serveStatic({ root: './' }))
app.get('/', serveStatic({ path: './static/index.html' }))
app.use('/favicon-loop.ico', serveStatic({ path: './favicon-loop.ico' }))
app.use('/murly_storm.jpg', serveStatic({ path: './murly_storm.jpg' }))

export default {
port: 3000,
hostname: '0.0.0.0',
fetch: app.fetch,
}




note: again to show HTML i edit all '<' to '< ' ( added a space ) so it prints here:

static/index.html
< !DOCTYPE html>
< html>

< head>
< title>HTML Template< /title>
< style>
body {
background-image: url('murly_storm.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;

color:white;
}
< /style>
< link rel="icon" type="image/x-icon" href="favicon-loop.ico">
< /head>
< body>

< h1>BUN HONO /BUN/my-hono-app/static/index.html< /h1>
< /body>
< /html>












and next we explore the use of a often used framework

EXPRESS


deep dive video
node js_express
bun js_express
express js and on YouTube
try on RPI3

mkdir home/pi/Projects/NODE/NODEJS_EXPRESS
cd home/pi/Projects/NODE/NODEJS_EXPRESS
npm init -y
npm install express
touch server.js
nano server.js


server.js
const express = require('express');
const app = express();
const port = 3000;
const hostname = '0.0.0.0';

// Define a route for GET requests to the root URL
app.get('/', (req, res) => {
res.send('Hello World from Express!');
});

// Start the server
app.listen(port, () => {
console.log(`Example app listening at http://${hostname}:${port}`);
});


node server.js

with a LAN browser:
http://192.168.1.103:3000



now try:

NODE NEXT


a node react ( again ) and it worked on RPI3

mkdir /NODEJS_NEXT

cd /NODE/NODEJS_NEXT
npx create-next-app@latest

my-next

- TS
+ eslint
-tailwind
+ /src/
+ app router
+ turbo
+ alias
+ alias @/*

see:
Installing dependencies:
- react
- react-dom
- next

Installing devDependencies:
- eslint
- eslint-config-next
- @eslint/eslintrc


cd my-next
npm run dev


see: next boiler plate page at
http://192.168.1.103:3000




check on:
VERCEL allow deployment on their web space ?FREE?
VERCEL TEMPLATES


NODE NEXT


for BUN NEXT follow this


and there is a next level ( if you check on the VERCEL templates: )
next templates

so instead of the NEXT basic you can install a ready example app
npx create-next-app --example blog-starter blog-starter-app
cd blog-starter-app
npm run dev

see:
✓ Starting...
✓ Ready in 10.6s
○ Compiling / ...
✓ Compiled / in 47.1s
GET / 200 in 51609ms

- - so after one minute see at
http://192.168.1.103:3000

now under
_posts
add a new blog entry ( file )
kll.md
filling following entries:

kll.md
---
title: "NODE Next.js BLOG test KLL"
excerpt: "article excerpt. (short text summary )"
coverImage: "/assets/blog/hello-world/cover.jpg"
date: "2025-08-16T05:35:07.322Z"
author:
name: KLL
picture: "/assets/blog/authors/tim.jpeg"
ogImage:
url: "/assets/blog/hello-world/cover.jpg"
---

blog intro text 1
and use MD type styles like:
## article header
blog long text2

as we run in 'dev' mode,
you just add a additional /-posts/x.md file
( and add 2 pictures )
and refresh browser to find that new blog entry in the overview,
click it and see the detail article / BLOG



now that MD thing you anyhow have to learn:
it is a easy way to do some HTML styling
most known for the README.md file at GIT
GIT MD help
now a server what uses *.md file needs to run a md preprocessor to render HTML.

learn.md
# A first-level heading
## A second-level heading
### A third-level heading
** bold **
* italic *
> quote
```code```

any long text will be like a paragraph
separated from each other by a empty line.

but to force a manual line break inside a paragraph have to add 2 spaces or a backslash

[external link text](https://link)


[internal link text](#section)
### section

![alt text](image link)





now we go an extra step,

BUN and SQLite


above mentioned that in cases with database usage the SQL language is required
and already install SQLite and a SQLite file browser on RPI already.

here we try using BUN and its build in SQLite driver
we use a ready example from https://github.com/gaurishhs/bun-web-app/
by just download the ZIP:
wget https://github.com/gaurishhs/bun-web-app/archive/refs/heads/main.zip
and unzip it into
/BUN/my-sqlite/
in there need
bun install
see:
bun install v1.2.20 (6ad208bc)

+ @types/react@18.0.28
+ @types/react-dom@18.0.11
+ bun-types@0.5.7
+ @elysiajs/html@0.1.0 (v1.3.1 available)
+ elysia@0.2.9
+ react@18.2.0
+ react-dom@18.2.0

bun run index.ts
see only:
Database initialized
try:
http://192.168.1.103:3000/

it uses like JS code
// Get all books
async getBooks() {
return this.db.query('SELECT * FROM books').all();
}
with SQL commands send to db query function
SELECT * FROM books

it also uses the framework
Elysia JS
a faster Express.js replacement.

yes, the 3 buttons [ADD] [REMOVE] [UPDATE]
and the one line [ name,author ]
input field comes poor
but it works






WordPress


now at last we could make a complete new server setup "LAMP"
and install WordPress on it,
OR
try use docker containers
on RPI3
+ docker itself is already running
+ + and our NGINX container with the HTML tests of /home/pi/Projects/nginx/index.html ...
+ + + check with 'dinfo' alias

https://pimylifeup.com/docker-wordpress/
! that did not work out on RPI3 ??

https://www.kevsrobots.com/blog/wordpress-on-docker.html
! also not work: no matching manifest for linux/arm64/v8

rahul
worked!

again:
sudo mkdir -p /opt/stacks/wordpress
cd /opt/stacks/wordpress


sudo nano compose.yaml

( and copy from webpage )
( i changed )
8081:80
[ctrl][O][enter]
[ctrl][x]

( make it )
sudo docker compose up -d

pi@pinas:/opt/stacks/wordpress $ sudo docker compose up -d
[+] Running 36/36
✔ wordpress Pulled 127.8s
✔ mysqldb Pulled 372.6s

[+] Running 5/5
✔ Network wordpress_mysitenet Created 0.8s
✔ Volume "wordpress_mysqldb_data" Created 0.0s
✔ Volume "wordpress_wordpress_data" Created 0.0s
✔ Container wordpress-mysqldb-1 Started 3.1s
✔ Container wordpress-wordpress-1 Started 3.2s
pi@pinas:/opt/stacks/wordpress $


http://192.168.1.103:8081 >goes to>
http://192.168.1.103:8081/wp-admin/install.php
config admin access:
user
password

now login:
user
password

see admin interface:
http://192.168.1.103:8081/wp-admin/index.php





check LAN public SITE:
http://192.168.1.103:8081/







but i installed also a docker house-keeping tool:

Portainer


from docker/docs

sudo docker volume create portainer_data

sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

https://192.168.1.103:9443 (Ethernet)
admin
pw
[ live connect ]






something else worked:

Nextcloud


from docker/hub


sudo docker run -d --name nextcloud -p 8088:80 --restart=always -v nextcloud:/var/www/html -v apps:/var/www/html/custom_apps -v config:/var/www/html/config -v data:/var/www/html/data nextcloud

https://192.168.1.103:8088 (Ethernet)

admin
pw
( installing ..... )
?install recommended apps? yes




-a- i like the 'web-interface'
esp like file transfer ( upload download ..)
? the data are INSIDE that container ( and gone if i delete the container )?
oh, i did found nextcloud files at ( a uploaded image file and moved to photos )
need 'sudo'
RPI3: /var/lib/docker/volumes/data/_data/admin/files/Photos/
( it was portainer what show me that info )

but i would like to use that tool also to handle like a shared folder of the
RPI3:/home/pi/Projects/
from there? well this sounds interesting:
git tutorial
video

-b- from internal app store install
'maps'

-c- no idea how to get that 'own cloud office' to work?


as we are into making web-pages from the raspberry,
why not have a easy web console too

COCKPIT


sudo apt install cockpit
from browser try:
https://192.168.1.103:9090
see lots of info about your Pi, but also







a terminal to work in






connect


here i just want to mention that there is a official way to reach your Raspberry Pi from the internet
but you need a online account. that helps to link your remote browser via a tunnel into yur Pi at home.
that is free as there is no dataflow via the Raspberry Pi company, just a 1 to 1 connection.
connect





home server


complete different setup RPI3:
for many server applications actually must not use linux desktop
instead just linux like Raspberry Pi OS Lite 64b

uSD for RPI1 ..4 should be A1
for RPI5 A2 ( Sandisk Extreme Pro 32 .. 128 GB for Raspberry Pi 5 )

7.8.2025
32GB uSD samsung evo

RPI3 on USB SSD

start Raspberry Pi Imager ( with option settings
burn RPI3 Raspberry Pi OS Lite 64bit
host: casaos
user: pi
pw:
+ wifi (TH)
+ SSH enable


boot in RPI3:
login from PC: ( hoping wifi login works )
ssh pi@casaos
or
ssh pi@192.168.1.9 ( after find IP with nmap )
pw

sudo apt update
sudo apt upgrade -y

FIX-IP .100 .200
for ETHERNET:
sudo nmcli c show
sudo nmcli c mod 'Wired connection 1' ipv4.addresses 192.168.1.100/24 ipv4.method manual
sudo nmcli con mod 'Wired connection 1' ipv4.gateway 192.168.1.1
sudo nmcli con mod 'Wired connection 1' ipv4.dns "10.10.30.1 8.8.8.8 8.8.4.4"

and for WIFI: see your SSID, or here 'preconfigured' as i burn SSID in settings
sudo nmcli c show
sudo nmcli c mod 'preconfigured' ipv4.addresses 192.168.1.200/24 ipv4.method manual
sudo nmcli con mod 'preconfigured' ipv4.gateway 192.168.1.1
sudo nmcli con mod 'preconfigured' ipv4.dns "10.10.30.1 8.8.8.8 8.8.4.4"

sudo reboot

install:

CASA OS


CASA OS

curl -fsSL https://get.casaos.io | sudo bash









browser
http://192.168.1.200
or try .local
like hire: casaos.local

user: admin
password:













now that is just the home server shell:
pls. try the app.store and find lots of server tools to install:
+ home assist / esp Home
+ Jellyfin / Plex
+ nextcloud
+ Node-Red
+ portainer
+ pi hole
...


thanks for reading!
back to OVERVIEW