Skip to content
/ my-nixos Public

Personal NixOS configuration using flakes and modules to manage multiple hosts for development and web hosting.

License

Notifications You must be signed in to change notification settings

ahbk/my-nixos

Repository files navigation

Options

my-nixos.backup

Definition of backup targets.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.backup.<name>.enable

Whether to enable this backup target.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.backup.<name>.exclude

Paths to exclude from backup.

Type: list of string

Default: [ ]

Example:

[
  /home/alex/.cache
]

Declared by:

my-nixos.backup.<name>.paths

Paths to backup.

Type: list of string

Default: [ ]

Example:

[
  /home/alex/.bash_history
  /home/alex/.local/share/qutebrowser/history.sqlite
]

Declared by:

my-nixos.backup.<name>.privateKeyFile

Location of the private key file used to connect with target. Match with a public key in my-nixos.users.backup.keys.

Type: string

Default: "/home/backup/.ssh/id_ed25519"

Declared by:

my-nixos.backup.<name>.pruneOpts

A list of options (–keep-* et al.) for ‘restic forget –prune’, to automatically prune old snapshots. The ‘forget’ command is run after the ‘backup’ command, so keep that in mind when constructing the --keep-* options.

Type: list of string

Default:

[
  "--keep-daily 7"
  "--keep-weekly 5"
  "--keep-monthly 12"
  "--keep-yearly 75"
]

Declared by:

my-nixos.backup.<name>.timerConfig

When to run the backup. See systemd.timer(5) for details. If null no timer is created and the backup will only run when explicitly started.

Type: anything

Default:

{
  OnCalendar = "01:00";
  Persistent = true;
}

Declared by:

my-nixos.desktop-env

Definition of per-user desktop environment.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.desktop-env.<name>.enable

Whether to enable desktop environment for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.django.sites

Definition of per-domain Django apps to serve.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.django.sites.<name>.enable

Whether to enable Django app.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.django.sites.<name>.locationProxy

Location pattern for proxy to django, empty string -> no proxy

Type: string

Default: "/"

Example: "~ ^/(api|admin)"

Declared by:

my-nixos.django.sites.<name>.locationStatic

Location pattern for static files, empty string -> no static

Type: string

Default: "/static/"

Declared by:

my-nixos.django.sites.<name>.port

Listening port.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Example: 8000

Declared by:

my-nixos.django.sites.<name>.ssl

Whether to enable SSL (https) support.

Type: boolean

Declared by:

my-nixos.django.sites.<name>.user

Username for app owner

Type: string

Declared by:

my-nixos.django-react.sites

Definition of per-domain Django+React apps to serve.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.django-react.sites.<name>.enable

Whether to enable Django+React app.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.django-react.sites.<name>.ports

Listening ports.

Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Example:

[
  8000
  8001
]

Declared by:

my-nixos.django-react.sites.<name>.ssl

Whether to enable SSL (https) support.

Type: boolean

Declared by:

my-nixos.django-react.sites.<name>.user

Username for app owner

Type: string

Declared by:

my-nixos.django-svelte.sites

Definition of per-domain Django+SvelteKit apps to serve.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.django-svelte.sites.<name>.enable

Whether to enable Django+SvelteKit app.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.django-svelte.sites.<name>.ports

Listening ports.

Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Example:

[
  8000
  8001
]

Declared by:

my-nixos.django-svelte.sites.<name>.ssl

Whether to enable SSL (https) support.

Type: boolean

Declared by:

my-nixos.django-svelte.sites.<name>.user

Username for app owner

Type: string

Declared by:

my-nixos.fail2ban.enable

Whether to enable the jails configured with services.fail2ban.jails.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.fail2ban.ignoreIP

A list of IP addresses, CIDR masks or DNS hosts not ta ban a host.

Type: list of string

Default: [ ]

Example:

[
  "10.0.0.0/24"
  "shadowserver.org"
]

Declared by:

my-nixos.fastapi.sites

Definition of per-domain FastAPI apps to serve.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.fastapi.sites.<name>.enable

Whether to enable FastAPI app.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.fastapi.sites.<name>.port

Listening port.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Example: 8000

Declared by:

my-nixos.fastapi.sites.<name>.ssl

Whether to enable SSL (https) support.

Type: boolean

Declared by:

my-nixos.fastapi.sites.<name>.user

Username for app owner

Type: string

Default: null

Declared by:

my-nixos.fastapi-svelte.sites

Definition of per-domain FastAPI+SvelteKit apps to serve.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.fastapi-svelte.sites.<name>.enable

Whether to enable FastAPI+SvelteKit app.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.fastapi-svelte.sites.<name>.ports

Listening ports.

Type: list of 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Example:

[
  8000
  8001
]

Declared by:

my-nixos.fastapi-svelte.sites.<name>.ssl

Whether to enable SSL (https) support.

Type: boolean

Declared by:

my-nixos.fastapi-svelte.sites.<name>.user

Username for app owner

Type: string

Declared by:

my-nixos.glesys.updaterecord.enable

Whether to enable updating DNS-record on glesys.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.glesys.updaterecord.cloudaccount

Glesys account id.

Type: string

Declared by:

my-nixos.glesys.updaterecord.device

Device that should be watched.

Type: string

Example: "enp3s0"

Declared by:

my-nixos.glesys.updaterecord.recordid

The glesys id of the record

Type: string

Declared by:

my-nixos.hm

Set of users to be configured with home-manager.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.hm.<name>.enable

Whether to enable home-manager for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.ide

Set of users to be configured with IDE.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.ide.<name>.enable

Whether to enable IDE for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.ide.<name>.mysql

Whether to enable a mysql db with same name.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.ide.<name>.postgresql

Whether to enable a postgres db with same name.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.mailserver.enable

Whether to enable mail server.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.mailserver.domains

List of domains to manage.

Type: attribute set of (submodule)

Declared by:

my-nixos.mailserver.domains.<name>.relay

Enable if this host is the domain’s final destination.

Type: boolean

Declared by:

my-nixos.mailserver.users

Configure user accounts.

Type: attribute set of (submodule)

Declared by:

my-nixos.mailserver.users.<name>.enable

Whether to enable this user.

Type: boolean

Default: true

Example: true

Declared by:

my-nixos.mailserver.users.<name>.catchAll

Make the user recipient of a whole domain.

Type: list of string

Default: [ ]

Declared by:

my-nixos.mysql

Specification of one or more mysql user/database pair to setup

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.mysql.<name>.ensure

Ensure mysql database for the user

Type: boolean

Default: true

Declared by:

my-nixos.postgresql

Specification of one or more postgresql user/database pair to setup

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.postgresql.<name>.ensure

Ensure a postgresql database for the user.

Type: boolean

Default: true

Declared by:

my-nixos.react.sites

Specification of one or more React sites to serve

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.react.sites.<name>.enable

Whether to enable react-app for this host…

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.react.sites.<name>.api

URL for the API endpoint

Type: string

Declared by:

my-nixos.react.sites.<name>.location

URL path to serve the application.

Type: string

Default: "/"

Declared by:

my-nixos.react.sites.<name>.ssl

Whether the react-app can assume https or not.

Type: boolean

Declared by:

my-nixos.sendmail

Set of users to be configured with sendmail.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.sendmail.<name>.enable

Whether to enable sendmail…

Type: boolean

Default: true

Example: true

Declared by:

my-nixos.shell

Set of users to be configured with shell

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.shell.<name>.enable

Whether to enable shell for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.svelte.sites

Specification of one or more Svelte sites to serve

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.svelte.sites.<name>.enable

Whether to enable svelte-app for this host…

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.svelte.sites.<name>.api

URL for the API endpoint

Type: string

Declared by:

my-nixos.svelte.sites.<name>.api_ssr

Server side URL for the API endpoint

Type: string

Declared by:

my-nixos.svelte.sites.<name>.location

URL path to serve the application.

Type: string

Default: "/"

Declared by:

my-nixos.svelte.sites.<name>.port

Port to serve the application.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Declared by:

my-nixos.svelte.sites.<name>.ssl

Whether the svelte-app can assume https or not.

Type: boolean

Declared by:

my-nixos.svelte.sites.<name>.user

Username for app owner

Type: string

Declared by:

my-nixos.users

Set of users to be configured.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.users.<name>.enable

Whether to enable this user.

Type: boolean

Default: true

Example: true

Declared by:

my-nixos.users.<name>.aliases

Emails this user manages.

Type: list of string

Default: [ ]

Declared by:

my-nixos.users.<name>.email

User email.

Type: string

Declared by:

my-nixos.users.<name>.groups

User groups.

Type: list of string

Default: [ ]

Declared by:

my-nixos.users.<name>.keys

Public SSH keys.

Type: list of path

Default: [ ]

Declared by:

my-nixos.users.<name>.name

User name.

Type: string

Declared by:

my-nixos.users.<name>.uid

User id.

Type: signed integer

Declared by:

my-nixos.vd

Set of users to be configured with visual design tools.

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.vd.<name>.enable

Whether to enable Visual design tools for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.wireguard.wg0.enable

Whether to enable this host to be part of 10.0.0.0/24.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.wireguard.wg0.keepalive

Keepalive interval.

Type: signed integer

Default: 25

Declared by:

my-nixos.wireguard.wg0.port

Listening port for establishing a connection.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default: 51820

Declared by:

my-nixos.wordpress.sites

Specification of one or more wordpress sites to serve

Type: attribute set of (submodule)

Default: { }

Declared by:

my-nixos.wordpress.sites.<name>.enable

Whether to enable wordpress on this host…

Type: boolean

Default: false

Example: true

Declared by:

my-nixos.wordpress.sites.<name>.basicAuth

Protect the site with basic auth.

Type: attribute set of string

Default: { }

Declared by:

my-nixos.wordpress.sites.<name>.ssl

Enable HTTPS.

Type: boolean

Declared by:

my-nixos.wordpress.sites.<name>.www

Prefix the url with www.

Type: boolean

Default: false

Declared by:

my-nixos-hm.desktop-env.enable

Whether to enable Desktop Environment for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos-hm.ide.enable

Whether to enable IDE for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos-hm.ide.email

Email for git.

Type: string

Declared by:

my-nixos-hm.ide.name

Name for git.

Type: string

Declared by:

my-nixos-hm.shell.enable

Whether to enable Enable shell for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos-hm.user.enable

Whether to enable home-manager for this user.

Type: boolean

Default: false

Example: true

Declared by:

my-nixos-hm.user.name

Name for the user.

Type: string

Declared by:

my-nixos-hm.vd.enable

Whether to enable Enable visual design tools for this user.

Type: boolean

Default: false

Example: true

Declared by:

About

Personal NixOS configuration using flakes and modules to manage multiple hosts for development and web hosting.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published