---
name: "make-klone-project"
section: "1"
platform: "linux"
package: "klone-package"
version: "0.3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/make-klone-project"
---

# make-klone-project(1)

manage a KLone based custom Debian package

## NAME

make-klone-project - manage a KLone based custom Debian package

## SYNOPSIS

**make-klone-project** \[*options*\] *COMMAND*

## DESCRIPTION

**make-klone-project** is a tool to create and manage custom webserver packages that use KLone, a framework that integrates a web site with possibly dynamic content and a web server into a single binary.

The aim is to let the author to focus on editing the site specific files under **webapp/** and allow creating a Debian package containing the web server and an init.d script to manage it with **dpkg-buildpackage**.

## USAGE

**make-klone-project** takes one non-option argument.

- **create**

  Create a new project directory, *package*-0.1 and seeds it with KLone's source and a debian/ directory.

- **clean**

  Remove all non-user created files and directories ie. everything but *debian/copyright*, *debian/changelog*, *debian/wsp.\** and *webapp/*. See also the **-l** option below.

- **refresh**

  Cleans the project directory as with **make-klone-project clean** and reseeds the KLone source and the debian/ directory.

## EXAMPLES

 make-klone-project create -p myapp -m "Kari Pahula \<kaol@debian.org\>"\
  cd myapp-0.1\
  (edit any files that require editing, mostly in webapp/)\
  make-klone-project refresh\
  dpkg-buildpackage -rfakeroot\
  sudo dpkg -i ../myapp\_0.1\_i386.deb

## OPTIONS

- **-b** *NAME*

  Name the created web server binary as *NAME*. If not specified the package name is used.

- **-l**

  Look for the project root directory in **clean** and **refresh** commands by changing the working directory to the parent directory until they find a file named *debian/wsp.opt.maintainer* in the current directory.  Returns with error if none is found. Without this option, only the current directory is checked for this file.

  The upside of using this option is that **make-klone-project** will be agnostic about the working directory, as long as it is somewhere inside the project tree, just like **dpkg-buildpackage**. The downside is that you run a greater risk of having the **clean** command cause unwanted data loss, if you happen to have an unfortunately named file in a wrong place.

- **-m** *NAME*

  Sets the maintainer name as *NAME*.

- **-p** *NAME*

  Set the package name as *NAME*. Only effective with the **create** command.  If not specified, uses **customkloneapp**.

## FILES

- *debian/wsp.description*

  A custom description for the package.  Should be formatted like the corresponding field in the *debian/control* file.

- *debian/wsp.opt.\**

  The options set in prior calls to **make-klone-project**.

- *webapp/*

  The user specified site tree, to be imported as the site by KLone.

## NOTES

Your web server will be run as a root, so you will need to use either **allow\_root** or **uid** and **gid** options in your *etc/kloned.conf*.

## SEE ALSO

[**dpkg-buildpackage**(1)](/dpkg-buildpackage/1.md), [**klone**(1)](/klone/1.md), [**kloned.conf**(5)](/kloned.conf/5.md), [**kloned**(8)](/kloned/8.md).

## AUTHOR

**make-klone-project** was written by Kari Pahula \<kaol@debian.org\>.
