diff --git a/README.md b/README.md
new file mode 100644
index 0000000..46f89c1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+
+# ISC DHCP server
+
+
+## Sample pillars
+
+ISC DHCP server
+
+    isc_dhcp:
+      server:
+        enabled: true
+        interfaces:
+        - name: eth0
+        - name: eth1
+
+## Read more
+
+* http://chschneider.eu/linux/server/tftpd-hpa.shtml
\ No newline at end of file
diff --git a/files/defaults.Debian b/files/defaults.Debian
new file mode 100644
index 0000000..186270b
--- /dev/null
+++ b/files/defaults.Debian
@@ -0,0 +1,13 @@
+# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
+#DHCPD_CONF=/etc/dhcp/dhcpd.conf
+
+# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
+#DHCPD_PID=/var/run/dhcpd.pid
+
+# Additional options to start dhcpd with.
+# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
+#OPTIONS=""
+
+# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
+# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
+INTERFACES="{% for interface in salt['pillar.get']('isc_dhcp:server:interfaces', []) %}{{ interface.name }}{% if not loop.last %} {% endif %}{% endfor %}"
\ No newline at end of file
diff --git a/files/dhcpd.conf b/files/dhcpd.conf
new file mode 100644
index 0000000..2dc1836
--- /dev/null
+++ b/files/dhcpd.conf
@@ -0,0 +1,103 @@
+{%- from "isc_dhcp/map.jinja" import server with context %}
+
+{%- if server.omapi_port is defined -%}
+omapi-port {{ server.omapi_port }};
+{% endif -%}
+
+ddns-update-style {{ server.ddns_update_style|default('none') }};
+
+{%- if server.ddns_updates is defined %}
+ddns-updates {{ server.ddns_updates }};
+{%- endif -%}
+
+{%- if server.update_static_leases is defined %}
+update-static-leases {{ server.update_static_leases }};
+{%- endif -%}
+
+{%- if server.use_host_decl_names is defined %}
+use-host-decl-names {{ server.use_host_decl_names }};
+{{- "\n" }}
+{%- endif -%}
+
+{%- if server.zones is defined -%}
+{%- for zone in server.dhcpd.zones|default({}) %}
+zone {{ zone.name }} {
+  primary {{ zone.primary }};
+  {%- if 'key' in zone %}
+  key {{ zone.key|default('rndc-key') }};
+  {%- endif %}
+}
+{{- "\n" }}
+{%- endfor -%}
+{%- endif %}
+
+default-lease-time {{ server.default_lease_time|default('600') }};
+max-lease-time {{ server.max_lease_time|default('7200') }};
+
+{%- if server.authoritative|default(False) %}
+authoritative;
+{%- endif %}
+
+log-facility {{ server.logging.facility|default('local7') }};
+
+{%- if server.next_server is defined -%}
+{{ "\n" }}
+next-server {{ server.next_server }};
+{%- endif -%}
+
+{%- if server.filename is defined %}
+filename "{{ server.filename }}";
+{{- "\n" }}
+{%- endif -%}
+
+{%- if server.allow is defined -%}
+  {%- for a in server.dhcpd.allow|default([]) %}
+allow {{ a }};
+  {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- if server.deny is defined -%}
+  {%- for d in server.dhcpd.deny|default([]) %}
+deny {{ d }};
+  {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- if server.ignore is defined -%}
+  {%- for i in server.ignore|default([]) %}
+ignore {{ i }};
+  {%- endfor -%}
+{{ "\n" }}
+{%- endif -%}
+
+{%- set options = server.dhcpd.default_options|default([]) -%}
+{%- if server.dhcpd.options is defined -%}
+  {%- do options.extend(server.dhcpd.options) -%}
+{%- endif -%}
+
+{%- for o in options %}
+option {{ o }};
+{%- endfor -%}
+{%- set options = [] -%}
+
+{%- if server.default_includes is defined -%}
+  {%- set includes = server.dhcpd.default_includes -%}
+{%- endif -%}
+{%- if server.dhcpd.includes is defined -%}
+  {%- do includes.extend(server.dhcpd.includes) -%}
+{%- endif -%}
+{{ "\n" }}
+
+{%- for i in includes %}
+include "{{ i }}";
+{%- endfor -%}
+{%- set includes = [] -%}
+
+{%- if server.dhcpd.file_append is defined %}
+
+{{ server.dhcpd.file_append }}
+
+{%- endif -%}
+
+{%- endif -%}
diff --git a/init.sls b/init.sls
new file mode 100644
index 0000000..d8a93c5
--- /dev/null
+++ b/init.sls
@@ -0,0 +1,8 @@
+
+include:
+{%- if pillar.foreman.server.enabled %}
+- foreman.server
+{%- endif %}
+{%- if pillar.foreman.smart_proxy.enabled %}
+- foreman.smart_proxy
+{%- endif %}
diff --git a/map.jinja b/map.jinja
new file mode 100644
index 0000000..16af0eb
--- /dev/null
+++ b/map.jinja
@@ -0,0 +1,31 @@
+{%- load_yaml as raw_server %}
+Debian:
+  pkgs:
+  - isc-dhcp-server
+  service: isc-dhcp-server
+  logging:
+    facility: local7
+  defaults_config: /etc/default/isc-dhcp-server
+  dhcpd_config: /etc/dhcp/dhcpd.conf
+  hosts_config: /etc/dhcp/dhcpd.hosts
+  subnets_config: /etc/dhcp/dhcpd.subnets
+FreeBSD:
+  pkgs:
+  - isc-dhcp42-server 
+  service: isc-dhcpd
+  logging:
+    facility: local7 
+  defaults_config: /etc/rc.conf.d/dhcpd
+  dhcpd_config: /usr/local/etc/dhcpd.conf
+  hosts_config: /usr/local/etc/dhcpd.hosts
+  subnets_config:/usr/local/etc/dhcpd.subnets
+RedHat:
+  pkgs:
+  - dhcp
+  service: dhcpd
+  logging:
+    facility: local7
+  defaults_config: /etc/sysconfig/dhcpd
+{%- endload %}
+
+{%- set server = salt['grains.filter_by'](raw_server, merge=salt['pillar.get']('isc_dhcp:server')) %}
diff --git a/server.sls b/server.sls
new file mode 100644
index 0000000..4feed67
--- /dev/null
+++ b/server.sls
@@ -0,0 +1,66 @@
+{%- from "isc_dhcp/map.jinja" import server with context %}
+{%- if server.enabled %}
+
+isc_dhcp_packages:
+  pkg.installed:
+  - pkgs: {{ server.pkgs }}
+
+{{ server.config.defaults_config }}:
+  file.managed:
+  - makedirs: True
+  - source: 'salt://isc_dhcp/files/defaults.{{ salt['grains.get']('os_family')) }}'
+  - template: jinja
+  - mode: 644
+  - require:
+   - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- if server.dhcpd_config is defined %}
+
+{{ server.config.dhcpd.path }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.conf
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+{%- if server.hosts_config is defined %}
+
+{{ server.hosts_config }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.hosts
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+{%- if server.subnets_config is defined %}
+
+{{ server.subnets_config }}:
+  file.managed:
+  - source: salt://isc_dhcp/files/dhcpd.subnets
+  - template: jinja
+  - mode: 644
+  - require:
+    - pkg: isc_dhcp_packages
+  - watch_in:
+    - service: isc_dhcp_service
+
+{%- endif %}
+
+isc_dhcp_service:
+  service.running:
+  - name: {{ server.service }}
+  - enable: true
+
+{%- endif %}
\ No newline at end of file
