diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..181fd1c3b1e5dcd980742f50851c58b363294c72
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+
+## Configuration
+### Create mongodb user
+
+db.createUser({user:"sh-kiel-pluto",pwd:"...",roles:[{role:"readWrite",database:"sh-kiel"}]})
diff --git a/mongodb/docker-compose.yml b/mongodb/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..17c966c310a02bf46627ef97b11e8a5a0eb33348
--- /dev/null
+++ b/mongodb/docker-compose.yml
@@ -0,0 +1,8 @@
+version: "2.1"
+services:
+  mongo:
+    image: mongo:3.2.4
+    ports:
+     - 27017:27017
+    command: --smallfiles
+    
diff --git a/pluto-interface/src/main/protobuf/vorgang.proto b/pluto-interface/src/main/protobuf/vorgang.proto
index 342cccb4b257dfb6d78a64d0e1f5d1943746a40c..ee17425c44e4483f5f268dddf6dfa4b9c1de77fc 100644
--- a/pluto-interface/src/main/protobuf/vorgang.proto
+++ b/pluto-interface/src/main/protobuf/vorgang.proto
@@ -17,10 +17,10 @@ service VorgangService {
 
 /* Create Vorgang */
 message CreateVorgangRequest {
-	Eingang eingang = 1;
+	GrpcEingang eingang = 1;
 }
 
-message Eingang {
+message GrpcEingang {
 	string id = 1;
 	EingangHeader header = 2;
 	Antragsteller antragsteller = 3;
diff --git a/pluto-server/Dockerfile b/pluto-server/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..75aee531f9d68f3eb3a2f0fc0071076c8e94f683
--- /dev/null
+++ b/pluto-server/Dockerfile
@@ -0,0 +1,6 @@
+FROM openjdk:15-slim
+
+COPY /target/pluto-server-0.0.1-SNAPSHOT.jar /opt/pluto.jar
+
+WORKDIR /opt
+CMD java -jar pluto.jar
\ No newline at end of file
diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml
index 5a6cfab875579f27cb0c060997ef03133e674a10..e6b53aedb801192668580f711107fba139bd2752 100644
--- a/pluto-server/pom.xml
+++ b/pluto-server/pom.xml
@@ -3,12 +3,14 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
+	
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
 		<version>2.4.0</version>
 		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
+	
 	<groupId>de.itvsh.ozg.pluto</groupId>
 	<artifactId>pluto-server</artifactId>
 	<version>0.0.1-SNAPSHOT</version>
@@ -21,6 +23,7 @@
 
 		<grpc.spring-boot-starter.version>2.10.1.RELEASE
 		</grpc.spring-boot-starter.version>
+		<mapstruct.version>1.4.1.Final</mapstruct.version>
 		<lorem.version>2.1</lorem.version>
 		<faker.version>1.0.2</faker.version>
 	</properties>
@@ -55,6 +58,12 @@
 			<artifactId>javafaker</artifactId>
 			<version>${faker.version}</version>
 		</dependency>
+		<!-- tools -->
+		<dependency>
+			<groupId>org.mapstruct</groupId>
+			<artifactId>mapstruct</artifactId>
+			<version>${mapstruct.version}</version>
+		</dependency>
 
 		<!-- Dev -->
 		<dependency>
@@ -109,6 +118,92 @@
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
 			</plugin>
+			
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>${java.version}</source>
+					<target>${java.version}</target>
+					<annotationProcessorPaths>
+						<path>
+							<groupId>org.projectlombok</groupId>
+							<artifactId>lombok</artifactId>
+							<version>${lombok.version}</version>
+						</path>
+						<path>
+							<groupId>org.mapstruct</groupId>
+							<artifactId>mapstruct-processor</artifactId>
+							<version>${mapstruct.version}</version>
+						</path>
+						<!-- other annotation processors -->
+					</annotationProcessorPaths>
+
+					<showWarnings>true</showWarnings>
+					<compilerArgs>
+						<compilerArg>
+							-Amapstruct.defaultComponentModel=spring
+						</compilerArg>
+						<compilerArg>
+							-Amapstruct.unmappedTargetPolicy=IGNORE
+						</compilerArg>
+					</compilerArgs>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>com.spotify</groupId>
+				<artifactId>dockerfile-maven-plugin</artifactId>
+				<version>1.4.13</version>
+				<configuration>
+					<username>admin</username>
+					<password>admin</password>
+					<!-- <username>srv-schiffsregister-jenkins</username> -->
+					<!-- <password>Dataport2018!</password> -->
+					<!-- <repository>build.schir:8082/schir-docker/schir</repository> -->
+					<repository>default-route-openshift-image-registry.apps.lab.okd.local/sh-kiel-dev/pluto</repository>
+					<!-- <repository>artefactrepo-ccse.dataport.de/schiffsregister-docker-development</repository> -->
+					<tag>${git.branch}-${project.version}</tag>
+					<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+					<buildArgs>
+						<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+					</buildArgs>
+				</configuration>
+				<executions>
+					<execution>
+						<id>default</id>
+						<phase>deploy</phase>
+						<goals>
+							<goal>build</goal>
+							<goal>tag</goal>
+							<goal>push</goal>
+						</goals>
+					</execution>
+				</executions>
+				<dependencies>
+					<dependency>
+						<groupId>javax.activation</groupId>
+						<artifactId>activation</artifactId>
+						<version>1.1.1</version>
+					</dependency>
+				</dependencies>
+			</plugin>
+			<plugin>
+				<groupId>pl.project13.maven</groupId>
+				<artifactId>git-commit-id-plugin</artifactId>
+				<configuration>
+					<offline>true</offline>
+				</configuration>
+				<executions>
+					<execution>
+						<id>get-the-git-infos</id>
+						<goals>
+							<goal>revision</goal>
+						</goals>
+						<phase>initialize</phase>
+					</execution>
+				</executions>
+			</plugin>
 		</plugins>
 	</build>
 
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Eingang.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Eingang.java
new file mode 100644
index 0000000000000000000000000000000000000000..2aacfd46cce48575dd7aafbfc9beb1f81c10fa77
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Eingang.java
@@ -0,0 +1,11 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import lombok.Builder;
+import lombok.Getter;
+
+@Getter
+@Builder
+public class Eingang {
+
+	private String name;
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcbdfa67a6670e74166f4e3f5b234411603765b0
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
@@ -0,0 +1,11 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+
+@Mapper
+interface EingangMapper {
+
+	@Mapping(target = "name", source = "header.formName")
+	Eingang fromGrpc(GrpcEingang grpcEingang);
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/GrpcVorgangService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/GrpcVorgangService.java
index 4320ce829f60ad2b5bd01b4e876081dca7ff0da0..e21b98ad2fcb658bf575b0a2cb48ab87937eda03 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/GrpcVorgangService.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/GrpcVorgangService.java
@@ -7,6 +7,8 @@ import java.util.Locale;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
+import org.springframework.beans.factory.annotation.Autowired;
+
 import com.github.javafaker.Faker;
 import com.thedeanda.lorem.Lorem;
 import com.thedeanda.lorem.LoremIpsum;
@@ -30,11 +32,18 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
 		}
 	}
 
+	@Autowired
+	private VorgangService vorgangService;
+	@Autowired
+	private EingangMapper eingangMapper;
+
 	@Override
 	public void createVorgang(CreateVorgangRequest request, StreamObserver<CreateVorgangReply> responseObserver) {
 
 		LOG.info("creating vorgang:\n{}", request.toString());
 
+		vorgangService.createVorgang(eingangMapper.fromGrpc(request.getEingang()));
+
 		var reply = CreateVorgangReply.newBuilder().setMessage("ok").build();
 		responseObserver.onNext(reply);
 		responseObserver.onCompleted();
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Vorgang.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Vorgang.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6d5f385e549cb8aa1e06ab48458b893837a4fdb
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/Vorgang.java
@@ -0,0 +1,32 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.List;
+
+import org.springframework.data.annotation.Id;
+
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Singular;
+
+@Getter
+@Builder
+public class Vorgang {
+
+	enum Status {
+		NEU
+	}
+
+	@Id
+	private String id;
+	@Builder.Default
+	private LocalDateTime createdAt = LocalDateTime.now(ZoneId.of("UTC"));
+	private String name;
+
+	@Builder.Default
+	private Status status = Status.NEU;
+
+	@Singular
+	private List<Eingang> eingangs;
+}
\ No newline at end of file
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeader.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeader.java
new file mode 100644
index 0000000000000000000000000000000000000000..edb0f97eafb1e73a25c8c5ab54cf13677a2975a6
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeader.java
@@ -0,0 +1,23 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+
+import org.springframework.data.annotation.Id;
+
+import lombok.Getter;
+
+@Getter
+public class VorgangHeader {
+
+	enum Status {
+		NEU
+	}
+
+	@Id
+	private String id;
+	private LocalDateTime createdAt = LocalDateTime.now(ZoneId.of("UTC"));
+	private String name;
+
+	private Status status = Status.NEU;
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeaderRepository.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeaderRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..065666b4eb2986ef190e6e19400ea6c9098bd251
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangHeaderRepository.java
@@ -0,0 +1,7 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.springframework.data.repository.CrudRepository;
+
+public interface VorgangHeaderRepository extends CrudRepository<VorgangHeader, String> {
+
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..c0609ea454e65759f6927a9a039ee334b4d99a78
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangMapper.java
@@ -0,0 +1,8 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.mapstruct.Mapper;
+
+@Mapper
+interface VorgangMapper {
+
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangRepository.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..aee22961c5c0c7620d773ae24f7c03fa10a396be
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangRepository.java
@@ -0,0 +1,7 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.springframework.data.repository.CrudRepository;
+
+interface VorgangRepository extends CrudRepository<Vorgang, String> {
+
+}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java
new file mode 100644
index 0000000000000000000000000000000000000000..9cd87056dc797f7e4746825762cbea17a42cf558
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java
@@ -0,0 +1,15 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+class VorgangService {
+
+	@Autowired
+	private VorgangRepository repository;
+
+	public void createVorgang(Eingang eingang) {
+		repository.save(Vorgang.builder().eingang(eingang).build());
+	}
+}
diff --git a/pluto-server/src/main/resources/application-local.yml b/pluto-server/src/main/resources/application-local.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/pluto-server/src/main/resources/application-oc.yml b/pluto-server/src/main/resources/application-oc.yml
new file mode 100644
index 0000000000000000000000000000000000000000..21b95724c030255ce5cf7f4e5e2972eb0517d397
--- /dev/null
+++ b/pluto-server/src/main/resources/application-oc.yml
@@ -0,0 +1,7 @@
+spring:
+  data:
+    mongodb:
+      host: 172.30.190.222
+      authentication-database: admin 
+      username: root
+      password: ldsjfa0avjklz
\ No newline at end of file
diff --git a/pluto-server/src/main/resources/application.properties b/pluto-server/src/main/resources/application.yml
similarity index 100%
rename from pluto-server/src/main/resources/application.properties
rename to pluto-server/src/main/resources/application.yml