# Simple example
In this example you will see how to import our dependencies and how to use them.
# Import
Add the package to your project:
deno add @dftp/server
Then import:
import { Server } from "@dftp/server";
# Server options
Create an instance of Server with these options:
const server = new Server({ port: 21 });
# With TLS/SSL support
const server = new Server({
port: 21,
cert: Deno.readTextFileSync("cert.pem"),
key: Deno.readTextFileSync("key.pem"),
});
# Handle connections
Wait for connections and handle authentication using the on("login") event:
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}
# Full example
import { Server } from "@dftp/server";
const server = new Server({ port: 21 });
console.log("FTP server listening on port 21");
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}
# With TLS/SSL
import { Server } from "@dftp/server";
const server = new Server({
port: 21,
cert: Deno.readTextFileSync("cert.pem"),
key: Deno.readTextFileSync("key.pem"),
});
console.log("FTP server with TLS listening on port 21");
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}