forked from pub-solar/os
project rename: nixflk -> devos
This commit is contained in:
parent
4ff3e36046
commit
8939c3401b
16
README.md
16
README.md
|
@ -1,16 +1,16 @@
|
||||||
[![Build](https://img.shields.io/github/checks-status/nrdxp/nixflk/core)](https://hercules-ci.com/github/nrdxp/nixflk/jobs)
|
[![Build](https://img.shields.io/github/checks-status/divnix/devos/core)](https://hercules-ci.com/github/divnix/devos/jobs)
|
||||||
[![MIT License](https://img.shields.io/github/license/nrdxp/nixflk)][mit]
|
[![MIT License](https://img.shields.io/github/license/divnix/devos)][mit]
|
||||||
[![NixOS 20.09](https://img.shields.io/badge/NixOS-v20.09-blue.svg?style=flat&logo=NixOS&logoColor=white)](https://nixos.org)
|
[![NixOS 20.09](https://img.shields.io/badge/NixOS-v20.09-blue.svg?style=flat&logo=NixOS&logoColor=white)](https://nixos.org)
|
||||||
|
|
||||||
> #### ⚠ Advisory ⚠
|
> #### ⚠ Advisory ⚠
|
||||||
> Nixflk leverages the [flakes][flakes] feature available via an _experimental_
|
> DevOS leverages the [flakes][flakes] feature available via an _experimental_
|
||||||
> branch of [nix][nix]. Until nix 3.0 is released, this project should be
|
> branch of [nix][nix]. Until nix 3.0 is released, this project should be
|
||||||
> considered unstable, though quite usable as flakes have been maturing
|
> considered unstable, though quite usable as flakes have been maturing
|
||||||
> _well_
|
> _well_
|
||||||
> [for a while](https://github.com/nrdxp/nixflk/tree/17713c22d07c54525c728c62060a0428b76dee3b).
|
> [for a while](https://github.com/divnix/devos/tree/17713c22d07c54525c728c62060a0428b76dee3b).
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
Nixflk is a template which grants a simple way to use, deploy and manage
|
DevOS is a template which grants a simple way to use, deploy and manage
|
||||||
[NixOS][nixos] systems for personal and productive use. It does this by
|
[NixOS][nixos] systems for personal and productive use. It does this by
|
||||||
providing a sane repository structure, integrating several popular projects
|
providing a sane repository structure, integrating several popular projects
|
||||||
like [home-manager][home-manager], setting clear guidelines, offering useful
|
like [home-manager][home-manager], setting clear guidelines, offering useful
|
||||||
|
@ -48,13 +48,13 @@ quite frequent.
|
||||||
- [devshell](https://github.com/numtide/devshell)
|
- [devshell](https://github.com/numtide/devshell)
|
||||||
|
|
||||||
# License
|
# License
|
||||||
Nixflk is licensed under the [MIT License][mit].
|
DevOS is licensed under the [MIT License][mit].
|
||||||
|
|
||||||
[nix]: https://nixos.org/manual/nix/stable
|
[nix]: https://nixos.org/manual/nix/stable
|
||||||
[mit]: https://mit-license.org
|
[mit]: https://mit-license.org
|
||||||
[nixos]: https://nixos.org/manual/nixos/stable
|
[nixos]: https://nixos.org/manual/nixos/stable
|
||||||
[home-manager]: https://nix-community.github.io/home-manager
|
[home-manager]: https://nix-community.github.io/home-manager
|
||||||
[flakes]: https://nixos.wiki/wiki/Flakes
|
[flakes]: https://nixos.wiki/wiki/Flakes
|
||||||
[core]: https://github.com/nrdxp/nixflk
|
[core]: https://github.com/divnix/devos
|
||||||
[community]: https://github.com/nrdxp/nixflk/tree/community
|
[community]: https://github.com/divnix/devos/tree/community
|
||||||
[dotfiles]: https://github.com/hlissner/dotfiles
|
[dotfiles]: https://github.com/hlissner/dotfiles
|
||||||
|
|
|
@ -3,7 +3,7 @@ authors = ["Timothy DeHerrera"]
|
||||||
language = "en"
|
language = "en"
|
||||||
multilingual = false
|
multilingual = false
|
||||||
src = "."
|
src = "."
|
||||||
title = "nixflk docs"
|
title = "devos docs"
|
||||||
|
|
||||||
[output.html]
|
[output.html]
|
||||||
site-url = "/nixflk/"
|
site-url = "/devos/"
|
||||||
|
|
|
@ -5,7 +5,7 @@ add your own cache, assuming the template lives in /etc/nixos, by simply
|
||||||
running `sudo cachix use yourcache`.
|
running `sudo cachix use yourcache`.
|
||||||
|
|
||||||
These caches are only added to the system after a `nixos-rebuild switch`, so it
|
These caches are only added to the system after a `nixos-rebuild switch`, so it
|
||||||
is recommended to call `cachix use nrdxp` before the initial deployment, as it
|
is recommended to call `cachix use divnix` before the initial deployment, as it
|
||||||
will save a lot of build time.
|
will save a lot of build time.
|
||||||
|
|
||||||
In the future, users will be able to skip this step once the ability to define
|
In the future, users will be able to skip this step once the ability to define
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
binaryCaches = [
|
binaryCaches = [
|
||||||
"https://nrdxp.cachix.org"
|
"https://divnix.cachix.org"
|
||||||
];
|
];
|
||||||
binaryCachePublicKeys = [
|
binaryCachePublicKeys = [
|
||||||
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
"divnix.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# get
|
# get
|
||||||
The `get` subcommand is useful for getting a bare copy of nixflk without the
|
The `get` subcommand is useful for getting a bare copy of devos without the
|
||||||
git history. You can pull either the core or community branches.
|
git history. You can pull either the core or community branches.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# up
|
# up
|
||||||
The `up` subcommand is a simple shortcut for `nixos-generate-config` that is
|
The `up` subcommand is a simple shortcut for `nixos-generate-config` that is
|
||||||
compatible with nixflk. There is a short explanation in the the getting started
|
compatible with devos. There is a short explanation in the the getting started
|
||||||
[guide](../start/from-nixos.md#generate-configuration).
|
[guide](../start/from-nixos.md#generate-configuration).
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# deploy-rs
|
# deploy-rs
|
||||||
[Deploy-rs][d-rs] is a tool for managing NixOS remote machines. It was
|
[Deploy-rs][d-rs] is a tool for managing NixOS remote machines. It was
|
||||||
chosen for nixflk after the author experienced some frustrations with the
|
chosen for devos after the author experienced some frustrations with the
|
||||||
stateful nature of nixops' db. It was also designed from scratch to support
|
stateful nature of nixops' db. It was also designed from scratch to support
|
||||||
flake based deployments, and so is an excellent tool for the job.
|
flake based deployments, and so is an excellent tool for the job.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Integrations
|
# Integrations
|
||||||
This section explores some of the optional tools included with nixflk to provide
|
This section explores some of the optional tools included with devos to provide
|
||||||
a solution to common concerns such as ci and remote deployment. An effort is
|
a solution to common concerns such as ci and remote deployment. An effort is
|
||||||
made to choose tools that treat nix, and where possible flakes, as first class
|
made to choose tools that treat nix, and where possible flakes, as first class
|
||||||
citizens.
|
citizens.
|
||||||
|
|
|
@ -4,9 +4,9 @@ The only dependency is nix, so make sure you have it [installed][install-nix].
|
||||||
## Get the Template
|
## Get the Template
|
||||||
Here is a snippet that will get you the template without the git history:
|
Here is a snippet that will get you the template without the git history:
|
||||||
```sh
|
```sh
|
||||||
nix-shell -p cachix --run cachix use nrdxp
|
nix-shell -p cachix --run cachix use divnix
|
||||||
|
|
||||||
nix-shell https://github.com/nrdxp/nixflk/archive/core.tar.gz -A shell \
|
nix-shell https://github.com/divnix/devos/archive/core.tar.gz -A shell \
|
||||||
--run "flk get core"
|
--run "flk get core"
|
||||||
|
|
||||||
cd flk
|
cd flk
|
||||||
|
|
2
extern/README.md
vendored
2
extern/README.md
vendored
|
@ -7,4 +7,4 @@ used to extend the arguments passed to all NixOS modules, allowing for
|
||||||
arbitrary values to be passed from flake inputs to the rest of your
|
arbitrary values to be passed from flake inputs to the rest of your
|
||||||
configuration.
|
configuration.
|
||||||
|
|
||||||
[extern]: https://github.com/nrdxp/nixflk/tree/core/extern/default.nix
|
[extern]: https://github.com/divnix/devos/tree/core/extern/default.nix
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Nix flakes contain an output called `nixosConfigurations` declaring an
|
Nix flakes contain an output called `nixosConfigurations` declaring an
|
||||||
attribute set of valid NixOS systems. To simplify the management and creation
|
attribute set of valid NixOS systems. To simplify the management and creation
|
||||||
of these hosts, nixflk automatically imports every _.nix_ file inside this
|
of these hosts, devos automatically imports every _.nix_ file inside this
|
||||||
directory to the mentioned attribute set, applying the projects defaults to
|
directory to the mentioned attribute set, applying the projects defaults to
|
||||||
each. The only hard requirement is that the file contain a valid NixOS module.
|
each. The only hard requirement is that the file contain a valid NixOS module.
|
||||||
|
|
||||||
|
|
|
@ -61,12 +61,12 @@ flake.nix:
|
||||||
{
|
{
|
||||||
# inputs omitted
|
# inputs omitted
|
||||||
|
|
||||||
outputs = { self, nixflk, nixpkgs, ... }: {
|
outputs = { self, devos, nixpkgs, ... }: {
|
||||||
nixosConfigurations.myConfig = nixpkgs.lib.nixosSystem {
|
nixosConfigurations.myConfig = nixpkgs.lib.nixosSystem {
|
||||||
system = "...";
|
system = "...";
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
nixflk.nixosModules.my-service
|
devos.nixosModules.my-service
|
||||||
({ ... }: {
|
({ ... }: {
|
||||||
services.MyService.enable = true;
|
services.MyService.enable = true;
|
||||||
})
|
})
|
||||||
|
|
|
@ -41,7 +41,7 @@ stdenv.mkDerivation {
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Simple .INI file parser in C";
|
description = "Simple .INI file parser in C";
|
||||||
homepage = "https://github.com/benhoyt/inih";
|
homepage = "https://github.com/benhoyt/inih";
|
||||||
maintainers = [ maintainers.nrdxp ];
|
maintainers = [ maintainers.divnix ];
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Profiles are simply NixOS modules which contain generic expressions suitable
|
Profiles are simply NixOS modules which contain generic expressions suitable
|
||||||
for any host. A good example is the configuration for a text editor, or
|
for any host. A good example is the configuration for a text editor, or
|
||||||
window manager. If you need some concrete examples, just checkout the
|
window manager. If you need some concrete examples, just checkout the
|
||||||
community [branch](https://github.com/nrdxp/nixflk/tree/community/profiles).
|
community [branch](https://github.com/divnix/devos/tree/community/profiles).
|
||||||
|
|
||||||
## Constraints
|
## Constraints
|
||||||
For the sake of consistency, there are a few minor constraints. First of all, a
|
For the sake of consistency, there are a few minor constraints. First of all, a
|
||||||
|
@ -41,7 +41,7 @@ you can either pull in the whole development profile, or pick and choose
|
||||||
individual programs.
|
individual programs.
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
Profiles are the most important concept in nixflk. They allow us to keep our
|
Profiles are the most important concept in devos. They allow us to keep our
|
||||||
nix expressions self contained and modular. This way we can maximize reuse
|
nix expressions self contained and modular. This way we can maximize reuse
|
||||||
while minimizing boilerplate. Always strive to keep your profiles as generic
|
while minimizing boilerplate. Always strive to keep your profiles as generic
|
||||||
and modular as possible. Anything machine specific belongs in your
|
and modular as possible. Anything machine specific belongs in your
|
||||||
|
|
|
@ -11,7 +11,7 @@ be sure to run `git-crypt init` before putting anything in here.
|
||||||
> within the nix/store so, if they end up in the nix/store after deployment, they
|
> within the nix/store so, if they end up in the nix/store after deployment, they
|
||||||
> will be world readable on that machine.
|
> will be world readable on that machine.
|
||||||
>
|
>
|
||||||
> The author of nixflk intends to implement a workaround for this situation in
|
> The author of devos intends to implement a workaround for this situation in
|
||||||
> the near future, but for the time being, simple be aware of this.
|
> the near future, but for the time being, simple be aware of this.
|
||||||
|
|
||||||
[git-crypt]: https://github.com/AGWA/git-crypt
|
[git-crypt]: https://github.com/AGWA/git-crypt
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[[ -d "$DEVSHELL_ROOT" ]] ||
|
[[ -d "$DEVSHELL_ROOT" ]] ||
|
||||||
{
|
{
|
||||||
echo "This script must be run from nixflk's devshell" >&2
|
echo "This script must be run from devos's devshell" >&2
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ case "$1" in
|
||||||
|
|
||||||
"get")
|
"get")
|
||||||
if [[ "$2" == "core" || "$2" == "community" ]]; then
|
if [[ "$2" == "core" || "$2" == "community" ]]; then
|
||||||
nix flake new -t "github:nrdxp/nixflk/$2" "${3:-flk}"
|
nix flake new -t "github:divnix/devos/$2" "${3:-flk}"
|
||||||
else
|
else
|
||||||
echo "flk get [core|community] {dest}"
|
echo "flk get [core|community] {dest}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Suites
|
# Suites
|
||||||
Suites provide a mechanism for users to easily combine and name collecitons of
|
Suites provide a mechanism for users to easily combine and name collecitons of
|
||||||
profiles. For good examples, check out the suites defined in the community
|
profiles. For good examples, check out the suites defined in the community
|
||||||
[branch](https://github.com/nrdxp/nixflk/blob/community/suites/default.nix).
|
[branch](https://github.com/divnix/devos/blob/community/suites/default.nix).
|
||||||
|
|
||||||
In the future, we will use suites as a mechanism for deploying various machine
|
In the future, we will use suites as a mechanism for deploying various machine
|
||||||
types which don't depend on hardware, such as vm's and containers.
|
types which don't depend on hardware, such as vm's and containers.
|
||||||
|
|
|
@ -4,7 +4,7 @@ Users are a special case of [profiles](../profiles) that define system
|
||||||
users and [home-manager][home-manager] configurations. For your convenience,
|
users and [home-manager][home-manager] configurations. For your convenience,
|
||||||
home manager is wired in by default so all you have to worry about is declaring
|
home manager is wired in by default so all you have to worry about is declaring
|
||||||
your users. For a fully fleshed out example, check out the developers personal
|
your users. For a fully fleshed out example, check out the developers personal
|
||||||
[branch](https://github.com/nrdxp/nixflk/tree/nrd/users/nrd/default.nix).
|
[branch](https://github.com/divnix/devos/tree/nrd/users/nrd/default.nix).
|
||||||
|
|
||||||
## Basic Usage
|
## Basic Usage
|
||||||
`users/myuser/default.nix`:
|
`users/myuser/default.nix`:
|
||||||
|
@ -42,7 +42,7 @@ flk home NixOS nixos switch
|
||||||
### Manually from outside the project:
|
### Manually from outside the project:
|
||||||
```sh
|
```sh
|
||||||
# build
|
# build
|
||||||
nix build "github:nrdxp/nixflk#hmActivationPackages.NixOS.nixos"
|
nix build "github:divnix/devos#hmActivationPackages.NixOS.nixos"
|
||||||
|
|
||||||
# activate
|
# activate
|
||||||
./result/activate && unlink result
|
./result/activate && unlink result
|
||||||
|
|
Loading…
Reference in a new issue