Nubio can be used as a static site generator, CLI, HTTP(S) server or Go library.
Nubio is still being designed and developed. Use at your own risk. No retro-compatibility promises are made until v1 is reached.
- Configure your resume with a single JSON file.
- Export your resume as HTML, PDF, or JSON.
- Serve your resume as a website (or generate static website files).
- Auto HTTPS (get and renew certs using ACME).
- Single executable.
- Website: juliensellier.com
- PDF export: juliensellier.com/resume.pdf
- JSON export: juliensellier.com/resume.json
- PDF generation: github.com/go-pdf/fpdf
An executable can be built from source using and installed locally using:
go install github.com/ejuju/nubio@latestYour resume is configured using a single JSON file,
usually named resume.json.
A resume.json file typically contains:
- Contact details
- External links
- Work Experience
- Skills
- Languages
- Education
- Interests
- Hobbies
Check out an example in /resume.json.
You can check the validity of your resume.json using the CLI:
nubio check-resume-config resume.jsonnubio ssg resume.json static/For an example setup with Caddy on Debian, check out: /doc/setup-ssg-caddy-debian.md
You can also use Nubio as a CLI to generate static file exports, for example, to export your config as a PDF:
nubio export pdf /path/to/resume.json /path/to/outputSupported export formats are:
htmlpdfjson
First, you'll need to configure a server.json file with the necessary information.
Example server.json for a local development server:
{
"address": ":8080",
"resume_path": "resume.json"
}Example server.json for a HTTPS server (running on port 80 and 443):
{
"tls_dirpath": "tls",
"tls_email_addr": "contact@mysite.example",
"resume_path": "resume.json"
}The field tls_dirpath indicates a directory where TLS certificates will be stored.
When using HTTPS, the server uses ports 80 and 443 by default,
there's no need to use the address field (it is ignored).
Example server.json for a HTTP server behind a reverse proxy:
{
"address": ":8080",
"true_ip_header": "X-Forwarded-For",
"resume_path": "resume.json"
}To start the server, run:
nubio run server.jsonNB: You can also simply run nubio run which by default will look
for a server.json file in the current working directory.
In order to add custom CSS, use the corresponding config field:
custom_cssto import the CSS from the config file field value.custom_css_pathto import the CSS from a file, when provided, overwritescustom_css.
Check out the HTML template file to see how to select the desired elements.
Here's an example of some custom CSS to set the UI to "light mode":
:root {
--color-fg-0: hsl(0, 0%, 5%);
--color-fg-1: hsl(0, 0%, 20%);
--color-fg-2: hsl(0, 0%, 35%);
--color-bg-0: hsl(0, 0%, 95%);
--color-bg-1: hsl(0, 0%, 92%);
--color-bg-2: hsl(0, 0%, 85%);
}- Export your resume to PDF:
nubio.ExportPDF(w, resume) - Export your resume to HTML:
nubio.ExportHTML(w, resume) - Validate your resume configuration:
resume.Check() - And more...
Official package documentation is available here: pkg.go.dev/github.com/ejuju/nubio/pkg/nubio