Ops
  • Introduction
  • Getting Started
  • Basic Usage
  • Configuration
  • Examples
  • Images
  • Instances
  • Volumes
  • Networking
  • Packages
  • Klibs
  • GPU
  • Hardware Acceleration
  • Clouds
    • Azure
    • AWS
    • Digital Ocean
    • Google Cloud Integration
    • IBM
    • Linode
    • OCI
    • UpCloud
    • Vultr
  • Hypervisors
    • Bhyve
    • Compose
    • Docker
    • Firecracker
    • OpenVMM
    • Hyper-V
    • Onprem
    • OpenStack
    • ProxMox
    • Virtual Box
    • VSphere
    • WorkStation
    • Terraform
    • Kubernetes
    • Bare Metal
    • Integrations
    • Debugging
    • CrossBuilding
    • MacOS
    • Deploy
    • FAQ
    • Benchmarking
  • Tools
    • Visual Studio Code Extension
  • Developer
    • Env Setup
    • Install from Source
Powered by GitBook
On this page
  • Deploying a Static File Server
  • Examples

Was this helpful?

Examples

PreviousConfigurationNextImages

Last updated 10 months ago

Was this helpful?

Check out this .

Deploying a Static File Server

Lets start with a basic go static file server, copy-and-paste below to server.go:

package main

import (
    "log"
    "net/http"
)

func main() {
    fs := http.FileServer(http.Dir("static"))
    http.Handle("/", fs)

    log.Println("Listening...on 8080")
    http.ListenAndServe(":8080", nil)
}

Now build server.go:

$ GOOS=linux go build server.go

Prepare the HTML content:

$ mkdir static
$ cd static

Create hello.html:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
    <title>A static page</title>
</head>
<body>
    <h1>Hello from a static page</h1>
</body>
</html>

Create a config file named config.json:

{
    "Dirs" : ["static"],
    "Files":["/lib/x86_64-linux-gnu/libnss_dns.so.2", "/etc/ssl/certs/ca-certificates.crt"]
}

If you are on linux you can use the above example to enable dns/tls, otherwise you can use this for local Mac examples.

Note: This is more than likely to change in the very near future.

{
    "Dirs" : ["static"]
}

The directory structure should look like below after these steps:

.
├── config.json
├── server
└── static
    └── hello.html

Package and deploy:

$ ops run -p 8080 -c config.json server

Notice that we are using KVM user-mode networking and have to forward host port 8080 to VM.

Curl it:

curl http://localhost:8080/hello.html

Examples

To learn more about various config options visit .

More examples can be found from the .

OPS GitHub repository
ops-examples repository
ada
austral
bog
c
c3
clojure
cpp
crystal
cyber
d
dada
dotnet
elixir
forth
golang
hare
haskell
hvm
Idris
java
javascript
kotlin
lua
nature
nelua
nginx
nim
ocaml
odin
onyx
pascal
perl
php
picat
polygon
pony
prolog
python
raku
R
ruby
rune
rust
scala
scheme
spark
swift
tarantool
typescript
umka
wasm
yaksha
zig
list of examples here