mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-20 20:02:14 +03:00
Merge pull request #105385 from WilliButz/update/codimd/1.7.0
codimd: 1.6.0 -> 1.7.0, rename to hedgedoc
This commit is contained in:
commit
45e371ec84
@ -287,6 +287,14 @@
|
||||
This avoids that the password gets exposed in the nix store.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Starting with version 1.7.0, the project formerly named <literal>CodiMD</literal>
|
||||
is now named <literal>HedgeDoc</literal>.
|
||||
New installations will no longer use the old name for users, state directories and such, this needs to be considered when moving state to a more recent NixOS installation.
|
||||
Based on <xref linkend="opt-system.stateVersion" />, existing installations will continue to work.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
|
@ -856,7 +856,6 @@
|
||||
./services/web-apps/atlassian/confluence.nix
|
||||
./services/web-apps/atlassian/crowd.nix
|
||||
./services/web-apps/atlassian/jira.nix
|
||||
./services/web-apps/codimd.nix
|
||||
./services/web-apps/convos.nix
|
||||
./services/web-apps/cryptpad.nix
|
||||
./services/web-apps/documize.nix
|
||||
@ -865,6 +864,7 @@
|
||||
./services/web-apps/gerrit.nix
|
||||
./services/web-apps/gotify-server.nix
|
||||
./services/web-apps/grocy.nix
|
||||
./services/web-apps/hedgedoc.nix
|
||||
./services/web-apps/icingaweb2/icingaweb2.nix
|
||||
./services/web-apps/icingaweb2/module-monitoring.nix
|
||||
./services/web-apps/ihatemoney
|
||||
|
@ -3,10 +3,14 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.codimd;
|
||||
cfg = config.services.hedgedoc;
|
||||
|
||||
name = if versionAtLeast config.system.stateVersion "21.03"
|
||||
then "hedgedoc"
|
||||
else "codimd";
|
||||
|
||||
prettyJSON = conf:
|
||||
pkgs.runCommandLocal "codimd-config.json" {
|
||||
pkgs.runCommandLocal "hedgedoc-config.json" {
|
||||
nativeBuildInputs = [ pkgs.jq ];
|
||||
} ''
|
||||
echo '${builtins.toJSON conf}' | jq \
|
||||
@ -14,22 +18,26 @@ let
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.codimd = {
|
||||
enable = mkEnableOption "the CodiMD Markdown Editor";
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "codimd" ] [ "services" "hedgedoc" ])
|
||||
];
|
||||
|
||||
options.services.hedgedoc = {
|
||||
enable = mkEnableOption "the HedgeDoc Markdown Editor";
|
||||
|
||||
groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Groups to which the codimd user should be added.
|
||||
Groups to which the user ${name} should be added.
|
||||
'';
|
||||
};
|
||||
|
||||
workDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/codimd";
|
||||
default = "/var/lib/${name}";
|
||||
description = ''
|
||||
Working directory for the CodiMD service.
|
||||
Working directory for the HedgeDoc service.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -38,17 +46,17 @@ in
|
||||
domain = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "codimd.org";
|
||||
example = "hedgedoc.org";
|
||||
description = ''
|
||||
Domain name for the CodiMD instance.
|
||||
Domain name for the HedgeDoc instance.
|
||||
'';
|
||||
};
|
||||
urlPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/url/path/to/codimd";
|
||||
example = "/url/path/to/hedgedoc";
|
||||
description = ''
|
||||
Path under which CodiMD is accessible.
|
||||
Path under which HedgeDoc is accessible.
|
||||
'';
|
||||
};
|
||||
host = mkOption {
|
||||
@ -69,7 +77,7 @@ in
|
||||
path = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/run/codimd.sock";
|
||||
example = "/run/hedgedoc.sock";
|
||||
description = ''
|
||||
Specify where a UNIX domain socket should be placed.
|
||||
'';
|
||||
@ -77,7 +85,7 @@ in
|
||||
allowOrigin = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "localhost" "codimd.org" ];
|
||||
example = [ "localhost" "hedgedoc.org" ];
|
||||
description = ''
|
||||
List of domains to whitelist.
|
||||
'';
|
||||
@ -201,7 +209,7 @@ in
|
||||
'';
|
||||
description = ''
|
||||
Specify which database to use.
|
||||
CodiMD supports mysql, postgres, sqlite and mssql.
|
||||
HedgeDoc supports mysql, postgres, sqlite and mssql.
|
||||
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
|
||||
https://sequelize.readthedocs.io/en/v3/</link> for more information.
|
||||
Note: This option overrides <option>db</option>.
|
||||
@ -213,12 +221,12 @@ in
|
||||
example = literalExample ''
|
||||
{
|
||||
dialect = "sqlite";
|
||||
storage = "/var/lib/codimd/db.codimd.sqlite";
|
||||
storage = "/var/lib/${name}/db.${name}.sqlite";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Specify the configuration for sequelize.
|
||||
CodiMD supports mysql, postgres, sqlite and mssql.
|
||||
HedgeDoc supports mysql, postgres, sqlite and mssql.
|
||||
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
|
||||
https://sequelize.readthedocs.io/en/v3/</link> for more information.
|
||||
Note: This option overrides <option>db</option>.
|
||||
@ -227,7 +235,7 @@ in
|
||||
sslKeyPath= mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/codimd.key";
|
||||
example = "/var/lib/hedgedoc/hedgedoc.key";
|
||||
description = ''
|
||||
Path to the SSL key. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
@ -235,7 +243,7 @@ in
|
||||
sslCertPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/codimd.crt";
|
||||
example = "/var/lib/hedgedoc/hedgedoc.crt";
|
||||
description = ''
|
||||
Path to the SSL cert. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
@ -243,7 +251,7 @@ in
|
||||
sslCAPath = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "/var/lib/codimd/ca.crt" ];
|
||||
example = [ "/var/lib/hedgedoc/ca.crt" ];
|
||||
description = ''
|
||||
SSL ca chain. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
@ -251,7 +259,7 @@ in
|
||||
dhParamPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/dhparam.pem";
|
||||
example = "/var/lib/hedgedoc/dhparam.pem";
|
||||
description = ''
|
||||
Path to the SSL dh params. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
@ -260,10 +268,10 @@ in
|
||||
type = types.str;
|
||||
default = "/tmp";
|
||||
description = ''
|
||||
Path to the temp directory CodiMD should use.
|
||||
Path to the temp directory HedgeDoc should use.
|
||||
Note that <option>serviceConfig.PrivateTmp</option> is enabled for
|
||||
the CodiMD systemd service by default.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
the HedgeDoc systemd service by default.
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
defaultNotePath = mkOption {
|
||||
@ -271,7 +279,7 @@ in
|
||||
default = "./public/default.md";
|
||||
description = ''
|
||||
Path to the default Note file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
docsPath = mkOption {
|
||||
@ -279,7 +287,7 @@ in
|
||||
default = "./public/docs";
|
||||
description = ''
|
||||
Path to the docs directory.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
indexPath = mkOption {
|
||||
@ -287,7 +295,7 @@ in
|
||||
default = "./public/views/index.ejs";
|
||||
description = ''
|
||||
Path to the index template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
hackmdPath = mkOption {
|
||||
@ -295,7 +303,7 @@ in
|
||||
default = "./public/views/hackmd.ejs";
|
||||
description = ''
|
||||
Path to the hackmd template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
errorPath = mkOption {
|
||||
@ -304,7 +312,7 @@ in
|
||||
defaultText = "./public/views/error.ejs";
|
||||
description = ''
|
||||
Path to the error template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
prettyPath = mkOption {
|
||||
@ -313,7 +321,7 @@ in
|
||||
defaultText = "./public/views/pretty.ejs";
|
||||
description = ''
|
||||
Path to the pretty template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
slidePath = mkOption {
|
||||
@ -322,13 +330,13 @@ in
|
||||
defaultText = "./public/views/slide.hbs";
|
||||
description = ''
|
||||
Path to the slide template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
(Non-canonical paths are relative to HedgeDoc's base directory)
|
||||
'';
|
||||
};
|
||||
uploadsPath = mkOption {
|
||||
type = types.str;
|
||||
default = "${cfg.workDir}/uploads";
|
||||
defaultText = "/var/lib/codimd/uploads";
|
||||
defaultText = "/var/lib/${name}/uploads";
|
||||
description = ''
|
||||
Path under which uploaded files are saved.
|
||||
'';
|
||||
@ -766,7 +774,7 @@ in
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
LDAP field which is used as the username on CodiMD.
|
||||
LDAP field which is used as the username on HedgeDoc.
|
||||
By default <option>useridField</option> is used.
|
||||
'';
|
||||
};
|
||||
@ -774,7 +782,7 @@ in
|
||||
type = types.str;
|
||||
example = "uid";
|
||||
description = ''
|
||||
LDAP field which is a unique identifier for users on CodiMD.
|
||||
LDAP field which is a unique identifier for users on HedgeDoc.
|
||||
'';
|
||||
};
|
||||
tlsca = mkOption {
|
||||
@ -840,7 +848,7 @@ in
|
||||
requiredGroups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "Hackmd-users" "Codimd-users" ];
|
||||
example = [ "Hedgedoc-Users" ];
|
||||
description = ''
|
||||
Required group names.
|
||||
'';
|
||||
@ -883,7 +891,7 @@ in
|
||||
environmentFile = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/codimd.env";
|
||||
example = "/var/lib/hedgedoc/hedgedoc.env";
|
||||
description = ''
|
||||
Environment file as defined in <citerefentry>
|
||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
||||
@ -894,9 +902,9 @@ in
|
||||
setting these variables accordingly in the environment file.
|
||||
|
||||
<programlisting>
|
||||
# snippet of CodiMD-related config
|
||||
services.codimd.configuration.dbURL = "postgres://codimd:\''${DB_PASSWORD}@db-host:5432/codimddb";
|
||||
services.codimd.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
|
||||
# snippet of HedgeDoc-related config
|
||||
services.hedgedoc.configuration.dbURL = "postgres://hedgedoc:\''${DB_PASSWORD}@db-host:5432/hedgedocdb";
|
||||
services.hedgedoc.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
|
||||
</programlisting>
|
||||
|
||||
<programlisting>
|
||||
@ -906,15 +914,15 @@ in
|
||||
</programlisting>
|
||||
|
||||
Note that this file needs to be available on the host on which
|
||||
<literal>CodiMD</literal> is running.
|
||||
<literal>HedgeDoc</literal> is running.
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.codimd;
|
||||
default = pkgs.hedgedoc;
|
||||
description = ''
|
||||
Package that provides CodiMD.
|
||||
Package that provides HedgeDoc.
|
||||
'';
|
||||
};
|
||||
};
|
||||
@ -924,20 +932,20 @@ in
|
||||
{ assertion = cfg.configuration.db == {} -> (
|
||||
cfg.configuration.dbURL != "" && cfg.configuration.dbURL != null
|
||||
);
|
||||
message = "Database configuration for CodiMD missing."; }
|
||||
message = "Database configuration for HedgeDoc missing."; }
|
||||
];
|
||||
users.groups.codimd = {};
|
||||
users.users.codimd = {
|
||||
description = "CodiMD service user";
|
||||
group = "codimd";
|
||||
users.groups.${name} = {};
|
||||
users.users.${name} = {
|
||||
description = "HedgeDoc service user";
|
||||
group = name;
|
||||
extraGroups = cfg.groups;
|
||||
home = cfg.workDir;
|
||||
createHome = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
systemd.services.codimd = {
|
||||
description = "CodiMD Service";
|
||||
systemd.services.hedgedoc = {
|
||||
description = "HedgeDoc Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "networking.target" ];
|
||||
preStart = ''
|
||||
@ -947,14 +955,14 @@ in
|
||||
'';
|
||||
serviceConfig = {
|
||||
WorkingDirectory = cfg.workDir;
|
||||
ExecStart = "${cfg.package}/bin/codimd";
|
||||
ExecStart = "${cfg.package}/bin/hedgedoc";
|
||||
EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
|
||||
Environment = [
|
||||
"CMD_CONFIG_FILE=${cfg.workDir}/config.json"
|
||||
"NODE_ENV=production"
|
||||
];
|
||||
Restart = "always";
|
||||
User = "codimd";
|
||||
User = name;
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
@ -63,7 +63,6 @@ in
|
||||
clickhouse = handleTest ./clickhouse.nix {};
|
||||
cloud-init = handleTest ./cloud-init.nix {};
|
||||
cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
|
||||
codimd = handleTest ./codimd.nix {};
|
||||
consul = handleTest ./consul.nix {};
|
||||
containers-bridge = handleTest ./containers-bridge.nix {};
|
||||
containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
|
||||
@ -147,6 +146,7 @@ in
|
||||
handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {};
|
||||
haproxy = handleTest ./haproxy.nix {};
|
||||
hardened = handleTest ./hardened.nix {};
|
||||
hedgedoc = handleTest ./hedgedoc.nix {};
|
||||
installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
|
||||
oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
|
||||
# 9pnet_virtio used to mount /nix partition doesn't support
|
||||
|
@ -1,60 +0,0 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
{
|
||||
name = "codimd";
|
||||
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ willibutz ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
codimdSqlite = { ... }: {
|
||||
services = {
|
||||
codimd = {
|
||||
enable = true;
|
||||
configuration.dbURL = "sqlite:///var/lib/codimd/codimd.db";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
codimdPostgres = { ... }: {
|
||||
systemd.services.codimd.after = [ "postgresql.service" ];
|
||||
services = {
|
||||
codimd = {
|
||||
enable = true;
|
||||
configuration.dbURL = "postgres://codimd:\${DB_PASSWORD}@localhost:5432/codimddb";
|
||||
|
||||
/*
|
||||
* Do not use pkgs.writeText for secrets as
|
||||
* they will end up in the world-readable Nix store.
|
||||
*/
|
||||
environmentFile = pkgs.writeText "codimd-env" ''
|
||||
DB_PASSWORD=snakeoilpassword
|
||||
'';
|
||||
};
|
||||
postgresql = {
|
||||
enable = true;
|
||||
initialScript = pkgs.writeText "pg-init-script.sql" ''
|
||||
CREATE ROLE codimd LOGIN PASSWORD 'snakeoilpassword';
|
||||
CREATE DATABASE codimddb OWNER codimd;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("CodiMD sqlite"):
|
||||
codimdSqlite.wait_for_unit("codimd.service")
|
||||
codimdSqlite.wait_for_open_port(3000)
|
||||
codimdSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
|
||||
|
||||
with subtest("CodiMD postgres"):
|
||||
codimdPostgres.wait_for_unit("postgresql.service")
|
||||
codimdPostgres.wait_for_unit("codimd.service")
|
||||
codimdPostgres.wait_for_open_port(5432)
|
||||
codimdPostgres.wait_for_open_port(3000)
|
||||
codimdPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
|
||||
'';
|
||||
})
|
60
nixos/tests/hedgedoc.nix
Normal file
60
nixos/tests/hedgedoc.nix
Normal file
@ -0,0 +1,60 @@
|
||||
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||
{
|
||||
name = "hedgedoc";
|
||||
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ willibutz ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
hedgedocSqlite = { ... }: {
|
||||
services = {
|
||||
hedgedoc = {
|
||||
enable = true;
|
||||
configuration.dbURL = "sqlite:///var/lib/hedgedoc/hedgedoc.db";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hedgedocPostgres = { ... }: {
|
||||
systemd.services.hedgedoc.after = [ "postgresql.service" ];
|
||||
services = {
|
||||
hedgedoc = {
|
||||
enable = true;
|
||||
configuration.dbURL = "postgres://hedgedoc:\${DB_PASSWORD}@localhost:5432/hedgedocdb";
|
||||
|
||||
/*
|
||||
* Do not use pkgs.writeText for secrets as
|
||||
* they will end up in the world-readable Nix store.
|
||||
*/
|
||||
environmentFile = pkgs.writeText "hedgedoc-env" ''
|
||||
DB_PASSWORD=snakeoilpassword
|
||||
'';
|
||||
};
|
||||
postgresql = {
|
||||
enable = true;
|
||||
initialScript = pkgs.writeText "pg-init-script.sql" ''
|
||||
CREATE ROLE hedgedoc LOGIN PASSWORD 'snakeoilpassword';
|
||||
CREATE DATABASE hedgedocdb OWNER hedgedoc;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
with subtest("HedgeDoc sqlite"):
|
||||
hedgedocSqlite.wait_for_unit("hedgedoc.service")
|
||||
hedgedocSqlite.wait_for_open_port(3000)
|
||||
hedgedocSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
|
||||
|
||||
with subtest("HedgeDoc postgres"):
|
||||
hedgedocPostgres.wait_for_unit("postgresql.service")
|
||||
hedgedocPostgres.wait_for_unit("hedgedoc.service")
|
||||
hedgedocPostgres.wait_for_open_port(5432)
|
||||
hedgedocPostgres.wait_for_open_port(3000)
|
||||
hedgedocPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
|
||||
'';
|
||||
})
|
@ -2,14 +2,14 @@
|
||||
, which, nodejs, mkYarnPackage, python2, nixosTests }:
|
||||
|
||||
mkYarnPackage rec {
|
||||
name = "codimd";
|
||||
version = "1.6.0";
|
||||
name = "hedgedoc";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "codimd";
|
||||
repo = "server";
|
||||
owner = "hedgedoc";
|
||||
repo = "hedgedoc";
|
||||
rev = version;
|
||||
sha256 = "1208a24v664ha9qzr7ky6i3ynphkaj0xi5l3rsw743i22nv5aj33";
|
||||
sha256 = "1zz5ni9cp1dhcvcrzks13pww5qm2wna2hh0k59pfz7c897rs1l7v";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ which makeWrapper ];
|
||||
@ -20,19 +20,15 @@ mkYarnPackage rec {
|
||||
packageJSON = ./package.json;
|
||||
|
||||
postConfigure = ''
|
||||
rm deps/CodiMD/node_modules
|
||||
cp -R "$node_modules" deps/CodiMD
|
||||
chmod -R u+w deps/CodiMD
|
||||
rm deps/HedgeDoc/node_modules
|
||||
cp -R "$node_modules" deps/HedgeDoc
|
||||
chmod -R u+w deps/HedgeDoc
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
cd deps/CodiMD
|
||||
|
||||
pushd node_modules/codemirror
|
||||
npm run install
|
||||
popd
|
||||
cd deps/HedgeDoc
|
||||
|
||||
pushd node_modules/sqlite3
|
||||
export CPPFLAGS="-I${nodejs}/include/node"
|
||||
@ -52,23 +48,23 @@ mkYarnPackage rec {
|
||||
mkdir -p $out
|
||||
cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
|
||||
|
||||
cat > $out/bin/codimd <<EOF
|
||||
cat > $out/bin/hedgedoc <<EOF
|
||||
#!${stdenv.shell}/bin/sh
|
||||
${nodejs}/bin/node $out/app.js
|
||||
EOF
|
||||
chmod +x $out/bin/codimd
|
||||
wrapProgram $out/bin/codimd \
|
||||
chmod +x $out/bin/hedgedoc
|
||||
wrapProgram $out/bin/hedgedoc \
|
||||
--set NODE_PATH "$out/lib/node_modules"
|
||||
|
||||
runHook postDist
|
||||
'';
|
||||
|
||||
passthru.tests = { inherit (nixosTests) codimd; };
|
||||
passthru.tests = { inherit (nixosTests) hedgedoc; };
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Realtime collaborative markdown notes on all platforms";
|
||||
license = licenses.agpl3;
|
||||
homepage = "https://github.com/codimd/server";
|
||||
homepage = "https://hedgedoc.org";
|
||||
maintainers = with maintainers; [ willibutz ma27 globin ];
|
||||
platforms = platforms.linux;
|
||||
};
|
@ -1,13 +1,14 @@
|
||||
{
|
||||
"name": "CodiMD",
|
||||
"version": "1.6.0",
|
||||
"description": "Realtime collaborative markdown notes on all platforms.",
|
||||
"name": "HedgeDoc",
|
||||
"version": "1.7.0",
|
||||
"description": "The best platform to write and share markdown.",
|
||||
"main": "app.js",
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"test": "npm run-script eslint && npm run-script jsonlint && npm run-script mocha-suite",
|
||||
"eslint": "node_modules/.bin/eslint --max-warnings 0 lib public test app.js",
|
||||
"jsonlint": "find . -not -path './node_modules/*' -type f -name '*.json' -o -type f -name '*.json.example' | while read json; do echo $json ; jq . $json; done",
|
||||
"markdownlint": "remark .",
|
||||
"mocha-suite": "NODE_ENV=test CMD_DB_URL=\"sqlite::memory:\" mocha --exit",
|
||||
"standard": "echo 'standard is no longer being used, use `npm run eslint` instead!' && exit 1",
|
||||
"dev": "webpack --config webpack.dev.js --progress --colors --watch",
|
||||
@ -18,9 +19,9 @@
|
||||
"dependencies": {
|
||||
"@passport-next/passport-openid": "^1.0.0",
|
||||
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
|
||||
"archiver": "^2.1.1",
|
||||
"archiver": "^5.0.2",
|
||||
"async": "^2.1.4",
|
||||
"aws-sdk": "^2.345.0",
|
||||
"aws-sdk": "^2.521.0",
|
||||
"azure-storage": "^2.7.0",
|
||||
"base64url": "^3.0.0",
|
||||
"body-parser": "^1.15.2",
|
||||
@ -28,16 +29,16 @@
|
||||
"bootstrap-validator": "^0.11.8",
|
||||
"chance": "^1.0.4",
|
||||
"cheerio": "^0.22.0",
|
||||
"codemirror": "git+https://github.com/hackmdio/CodeMirror.git",
|
||||
"codemirror": "git+https://github.com/hedgedoc/CodeMirror.git",
|
||||
"compression": "^1.6.2",
|
||||
"connect-flash": "^0.1.1",
|
||||
"connect-session-sequelize": "^6.0.0",
|
||||
"cookie": "0.3.1",
|
||||
"cookie-parser": "1.4.3",
|
||||
"cookie": "^0.4.0",
|
||||
"cookie-parser": "^1.4.3",
|
||||
"deep-freeze": "^0.0.1",
|
||||
"diff-match-patch": "git+https://github.com/hackmdio/diff-match-patch.git",
|
||||
"ejs": "^2.5.5",
|
||||
"emojify.js": "~1.1.0",
|
||||
"emojify.js": "^1.1.0",
|
||||
"escape-html": "^1.0.3",
|
||||
"express": ">=4.14",
|
||||
"express-session": "^1.14.2",
|
||||
@ -45,24 +46,24 @@
|
||||
"flowchart.js": "^1.6.4",
|
||||
"fork-awesome": "^1.1.3",
|
||||
"formidable": "^1.0.17",
|
||||
"gist-embed": "~2.6.0",
|
||||
"gist-embed": "^2.6.0",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"handlebars": "^4.5.2",
|
||||
"helmet": "^3.21.1",
|
||||
"highlight.js": "~9.12.0",
|
||||
"i18n": "^0.8.3",
|
||||
"highlight.js": "^9.12.0",
|
||||
"i18n": "^0.13.0",
|
||||
"imgur": "git+https://github.com/hackmdio/node-imgur.git",
|
||||
"ionicons": "~2.0.1",
|
||||
"jquery": "^3.4.1",
|
||||
"ionicons": "^2.0.1",
|
||||
"jquery": "^3.5.1",
|
||||
"jquery-mousewheel": "^3.1.13",
|
||||
"jquery-ui": "^1.12.1",
|
||||
"js-cookie": "^2.1.3",
|
||||
"js-sequence-diagrams": "git+https://github.com/codimd/js-sequence-diagrams.git",
|
||||
"js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
|
||||
"js-yaml": "^3.13.1",
|
||||
"jsdom-nogyp": "^0.8.3",
|
||||
"keymaster": "^1.6.2",
|
||||
"list.js": "^1.5.0",
|
||||
"lodash": "^4.17.11",
|
||||
"lodash": "^4.17.20",
|
||||
"lutim": "^1.0.2",
|
||||
"lz-string": "git+https://github.com/hackmdio/lz-string.git",
|
||||
"mariadb": "^2.1.2",
|
||||
@ -79,11 +80,10 @@
|
||||
"markdown-it-regexp": "^0.4.0",
|
||||
"markdown-it-sub": "^1.0.0",
|
||||
"markdown-it-sup": "^1.0.0",
|
||||
"markdown-pdf": "^10.0.0",
|
||||
"mathjax": "~2.7.6",
|
||||
"mathjax": "^2.7.6",
|
||||
"mattermost": "^3.4.0",
|
||||
"mermaid": "~8.4.6",
|
||||
"meta-marked": "git+https://github.com/codimd/meta-marked#semver:^0.4.5",
|
||||
"mermaid": "^8.5.1",
|
||||
"meta-marked": "git+https://github.com/hedgedoc/meta-marked",
|
||||
"method-override": "^2.3.7",
|
||||
"minimist": "^1.2.0",
|
||||
"minio": "^6.0.0",
|
||||
@ -103,22 +103,22 @@
|
||||
"passport-twitter": "^1.0.4",
|
||||
"passport.socketio": "^3.7.0",
|
||||
"pdfobject": "^2.0.201604172",
|
||||
"pg": "^7.12.1",
|
||||
"pg": "^8.2.1",
|
||||
"pg-hstore": "^2.3.3",
|
||||
"prismjs": "^1.6.0",
|
||||
"randomcolor": "^0.5.3",
|
||||
"raphael": "git+https://github.com/dmitrybaranovskiy/raphael",
|
||||
"prismjs": "^1.21.0",
|
||||
"randomcolor": "^0.6.0",
|
||||
"raphael": "^2.3.0",
|
||||
"readline-sync": "^1.4.7",
|
||||
"request": "^2.88.0",
|
||||
"reveal.js": "~3.9.2",
|
||||
"reveal.js": "^3.9.2",
|
||||
"scrypt-async": "^2.0.1",
|
||||
"scrypt-kdf": "^2.0.1",
|
||||
"select2": "^3.5.2-browserify",
|
||||
"sequelize": "^5.21.1",
|
||||
"sequelize-cli": "^5.5.1",
|
||||
"shortid": "2.2.8",
|
||||
"socket.io": "~2.1.1",
|
||||
"socket.io-client": "~2.1.1",
|
||||
"shortid": "2.2.16",
|
||||
"socket.io": "^2.1.1",
|
||||
"socket.io-client": "^2.1.1",
|
||||
"spin.js": "^2.3.2",
|
||||
"sqlite3": "^4.1.0",
|
||||
"store": "^2.0.12",
|
||||
@ -137,20 +137,20 @@
|
||||
"xss": "^1.0.3"
|
||||
},
|
||||
"resolutions": {
|
||||
"**/tough-cookie": "~2.4.0",
|
||||
"**/tough-cookie": "~2.5.0",
|
||||
"**/minimatch": "^3.0.2",
|
||||
"**/request": "^2.88.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8.x"
|
||||
"node": ">=10.13"
|
||||
},
|
||||
"bugs": "https://github.com/codimd/server/issues",
|
||||
"bugs": "https://github.com/hedgedoc/hedgedoc/issues",
|
||||
"keywords": [
|
||||
"Collaborative",
|
||||
"Markdown",
|
||||
"Notes"
|
||||
],
|
||||
"homepage": "https://codimd.org",
|
||||
"homepage": "https://hedgedoc.org",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Claudius Coenen",
|
||||
@ -164,42 +164,43 @@
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/codimd/server.git"
|
||||
"url": "https://github.com/hedgedoc/hedgedoc.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-loader": "^7.1.4",
|
||||
"babel-plugin-transform-runtime": "^6.23.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-runtime": "^6.26.0",
|
||||
"copy-webpack-plugin": "^5.0.5",
|
||||
"css-loader": "^3.2.0",
|
||||
"eslint": "^5.9.0",
|
||||
"eslint-config-standard": "^12.0.0",
|
||||
"eslint-plugin-import": "^2.14.0",
|
||||
"eslint-plugin-node": "^8.0.0",
|
||||
"eslint-plugin-promise": "^4.0.1",
|
||||
"eslint-plugin-standard": "^4.0.0",
|
||||
"expose-loader": "^0.7.5",
|
||||
"file-loader": "^4.3.0",
|
||||
"html-webpack-plugin": "^4.0.0-beta.11",
|
||||
"imports-loader": "^0.8.0",
|
||||
"jsonlint": "^1.6.2",
|
||||
"less": "^3.10.3",
|
||||
"less-loader": "^5.0.0",
|
||||
"mini-css-extract-plugin": "^0.8.0",
|
||||
"mocha": "^5.2.0",
|
||||
"mock-require": "^3.0.3",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"script-loader": "^0.7.2",
|
||||
"string-loader": "^0.0.1",
|
||||
"style-loader": "^1.0.0",
|
||||
"url-loader": "^2.3.0",
|
||||
"webpack": "^4.41.2",
|
||||
"webpack-cli": "^3.3.10",
|
||||
"webpack-merge": "^4.2.2"
|
||||
"babel-cli": "6.26.0",
|
||||
"babel-core": "6.26.3",
|
||||
"babel-loader": "7.1.5",
|
||||
"babel-plugin-transform-runtime": "6.23.0",
|
||||
"babel-polyfill": "6.26.0",
|
||||
"babel-preset-env": "1.7.0",
|
||||
"babel-runtime": "6.26.0",
|
||||
"copy-webpack-plugin": "6.4.1",
|
||||
"css-loader": "3.6.0",
|
||||
"eslint": "5.16.0",
|
||||
"eslint-config-standard": "12.0.0",
|
||||
"eslint-plugin-import": "2.22.1",
|
||||
"eslint-plugin-node": "8.0.1",
|
||||
"eslint-plugin-promise": "4.2.1",
|
||||
"eslint-plugin-standard": "4.1.0",
|
||||
"expose-loader": "0.7.5",
|
||||
"file-loader": "4.3.0",
|
||||
"html-webpack-plugin": "4.5.0",
|
||||
"imports-loader": "0.8.0",
|
||||
"jsonlint": "1.6.3",
|
||||
"less": "3.13.1",
|
||||
"less-loader": "5.0.0",
|
||||
"mini-css-extract-plugin": "0.12.0",
|
||||
"mocha": "5.2.0",
|
||||
"mock-require": "3.0.3",
|
||||
"optimize-css-assets-webpack-plugin": "5.0.4",
|
||||
"remark-cli": "8.0.1",
|
||||
"remark-preset-lint-markdown-style-guide": "3.0.1",
|
||||
"script-loader": "0.7.2",
|
||||
"string-loader": "0.0.1",
|
||||
"url-loader": "2.3.0",
|
||||
"webpack": "4.44.2",
|
||||
"webpack-cli": "3.3.12",
|
||||
"webpack-merge": "4.2.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"bufferutil": "^4.0.0",
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -88,6 +88,7 @@ mapAliases ({
|
||||
clangAnalyzer = clang-analyzer; # added 2015-02-20
|
||||
clawsMail = claws-mail; # added 2016-04-29
|
||||
clutter_gtk = clutter-gtk; # added 2018-02-25
|
||||
codimd = hedgedoc; # added 2020-11-29
|
||||
compton = picom; # added 2019-12-02
|
||||
compton-git = compton; # added 2019-05-20
|
||||
conntrack_tools = conntrack-tools; # added 2018-05
|
||||
|
@ -2961,9 +2961,7 @@ in
|
||||
|
||||
cmt = callPackage ../applications/audio/cmt {};
|
||||
|
||||
codimd = callPackage ../servers/web-apps/codimd {
|
||||
nodejs = nodejs-12_x;
|
||||
};
|
||||
hedgedoc = callPackage ../servers/web-apps/hedgedoc { };
|
||||
|
||||
colord = callPackage ../tools/misc/colord { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user