diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..953ee8e --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/python +{ + "name": "Python 3", + "image": "mcr.microsoft.com/devcontainers/python:0-3.10", + "features": { + "ghcr.io/devcontainers/features/node:1": {} + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [8000], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "pip3 install --user -r requirements.txt && npm install && mkdir -p data && python3 manage.py migrate", + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "ms-python.python" + ] + } + }, + + "remoteUser": "vscode" +} diff --git a/.dockerignore b/.dockerignore index ee4a7d5..a658cdf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -9,9 +9,11 @@ /build /out /.git +/.devcontainer /.dockerignore /.gitignore +/.gitattributes /Dockerfile /docker-compose.yml /*.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1312090 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +*.sh text eol=lf \ No newline at end of file diff --git a/README.md b/README.md index a80f3b4..a6213f1 100644 --- a/README.md +++ b/README.md @@ -247,3 +247,23 @@ Start the Django development server with: python3 manage.py runserver ``` The frontend is now available under http://localhost:8000 + +### DevContainers + +This repository also supports DevContainers: [![Open in Remote - Containers](https://img.shields.io/static/v1?label=Remote%20-%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=git@github.com:sissbruecker/linkding.git) + +Once checked out, only the following commands are required to get started: + +Create a user for the frontend: +``` +python3 manage.py createsuperuser --username=joe --email=joe@example.com +``` +Start the Node.js development server (used for compiling JavaScript components like tag auto-completion) with: +``` +npm run dev +``` +Start the Django development server with: +``` +python3 manage.py runserver +``` +The frontend is now available under http://localhost:8000