PHPackages                             knutschsoft/swapp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. knutschsoft/swapp

ActiveProject

knutschsoft/swapp
=================

streetworker app

502[11 issues](https://github.com/knutschsoft/swapp/issues)PHP

Since Aug 30Pushed 1mo ago5 watchersCompare

[ Source](https://github.com/knutschsoft/swapp)[ Packagist](https://packagist.org/packages/knutschsoft/swapp)[ RSS](/packages/knutschsoft-swapp/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

Swapp - Die Streetwork-App
==========================

[](#swapp---die-streetwork-app)

[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Open Issues](https://camo.githubusercontent.com/b174bab8bd5e1b87e0cfaee596dbc4ac3d4f4a0d6cd94eafb0f436e0bcd99bae/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f6b6e7574736368736f66742f73776170703f7374796c653d666c61742d737175617265)](https://github.com/knutschsoft/swapp/issues)[![Closed Issues](https://camo.githubusercontent.com/930ae4b9400e1d8700d24901145cc0e8971df6b3e0930668ce194d11311c43d7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d636c6f7365642d7261772f6b6e7574736368736f66742f73776170703f7374796c653d666c61742d737175617265)](https://github.com/knutschsoft/swapp/issues?q=is%3Aissue+is%3Aclosed)[![Contributors](https://camo.githubusercontent.com/1e8ff5141f6486392da85e47f04cfbbe5c1c95b4dd992973816d2f10ce580c7d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f6b6e7574736368736f66742f73776170703f7374796c653d666c61742d737175617265)](https://github.com/knutschsoft/swapp/graphs/contributors)[![Contributors](https://camo.githubusercontent.com/8e7b4fe0d9105b7f3aeabdf7ae701bcfdb2d8d6298303b639deb2ed94d05acdc/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323032343f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/8e7b4fe0d9105b7f3aeabdf7ae701bcfdb2d8d6298303b639deb2ed94d05acdc/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323032343f7374796c653d666c61742d737175617265)

Swapp is a project to ease documentation of streetworkers which are on their way.

Have a look at **** for more information.

See **** for a full working demo of Swapp.

[![Was ist Swapp? What is Swapp?](web/assets/images/swapp-info.png?raw=true "Was ist Swapp? What is Swapp?")](web/assets/images/swapp-info.png?raw=true)

### How to start local dev?

[](#how-to-start-local-dev)

1. ##### Setup a proxy with nginx (which includes docker-gen)

    [](#setup-a-proxy-with-nginx-which-includes-docker-gen)

    Place the following `docker-compose.yml` in the folder of your choice, e.g. `/var/apps/nginx-proxy/` or `//workspace/nginx-proxy/`.

    ```
    version: "3.4"

    services:
        nginx-proxy:
            image: jwilder/nginx-proxy:alpine
            container_name: nginx-proxy
            ports:
                - target: 80
                  published: 80
                  protocol: tcp
                - target: 443
                  published: 443
                  protocol: tcp
            volumes:
                - /var/run/docker.sock:/tmp/docker.sock:ro
                - ./certs:/etc/nginx/certs
                - ./vhosts:/etc/nginx/conf.d
            networks:
                - swapp-dev

    networks:
        swapp-dev:
           external: true
    ```
2. ##### Install local ssl certificates

    [](#install-local-ssl-certificates)

    The following could be automated with own Dockerfile including jwilder/nginx-proxy and mkCert - alike to dev-tls docker file.

    First you have to settle on a domain to use for swapp. We will use `swapp.local` in the following expamples. Using only `swapp` would be troubling for certificates since most browsers do not accept wildcard certificates for second-level domains: e.g. browser will not accept certs created with `*.swapp` for subdomain `api.swapp`

    ###### install [mkCert](https://github.com/FiloSottile/mkcert)

    [](#install-mkcert)

    ```
    # linux
    wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64
    sudo mv mkcert-v1.4.1-linux-amd64 /usr/local/bin/mkcert
    sudo chmod +x /usr/local/bin/mkcert
    ```

    ```
    # macOS
    brew install mkcert
    brew install nss # if you use Firefox
    ```

    ###### Install rootCA

    [](#install-rootca)

    This automatically adds mkcert's rootCA to your systems trusted CAs so you no longer will be bugged by untrusted certificate notifications in your local browser.

    ```
    mkcert --install
    ```

    ###### create Certs

    [](#create-certs)

    Navigate to the nginx-proxy certs volume e.g. `cd /var/apps/nginx-proxy/certs` or `//workspace/nginx-proxy/certs`

    ```
    mkcert -key-file swapp.local.key -cert-file swapp.local.crt swapp.local *.swapp.local
    ```

    This generates a certificate for all subdomains of `swapp.local`
3. ##### setup dns

    [](#setup-dns)

    ```
    # /etc/hosts
    127.0.0.1	swapp.local
    ```
4. ##### start nginx-proxy

    [](#start-nginx-proxy)

    ```
    # this need to be run only once
    docker network create swapp-dev
    ```

    ```
    # /var/apps/nginx-proxy/ or //workspace/nginx-proxy/
    docker-compose up -d
    ```
5. ##### create .env

    [](#create-env)

    ```
    #/swapp
    cp .env.dist .env
    ```

    Adjust sensible vars like e.g. `JWT_KEY` and `DB_PASSWORD` as needed. Make sure the `DOMAIN_NAME` matches the one used when creating certificates.
6. ##### add in your `.bashrc` (or `.zshrc`)

    [](#add-in-your-bashrc-or-zshrc)

    ```
    $ vi ~/.bashrc

    ...
    export HOST_UID=$(id -u)      # UID is now available for docker-compose.yml
    export HOST_GID=$(id -g)      # GID is now available for docker-compose.yml
    ```
7. ##### start swapp stack

    [](#start-swapp-stack)

    ```
    docker-compose up -d
    ```

    nginx-proxy will create a vhost entry for each of swapp's services which has an environment variable `VIRTUAL_HOST` set. You can check the created hosts in a volume:

    ```
    cat path-to-nginx-proxy/vhosts/default.conf
    ```
8. ##### access swapp

    [](#access-swapp)

    ###### via domain names with self signed certificates

    [](#via-domain-names-with-self-signed-certificates)

    Advantage: There is no need to accept insecure certs on every first website request.

    -
    -

    To access with your mobile devices in your local WAN you have to replace 'swapp.local' with your local ip address:

    - Find local ip address in Windows 7 [\[1\]](https://www.groovypost.com/howto/microsoft/windows-7/find-your-local-ip-address-windows-7-cmd/)
    - Find local ip address in Ubuntu [\[1\]](https://help.ubuntu.com/stable/ubuntu-help/net-findip.html.en) [\[2\]](https://itsfoss.com/check-ip-address-ubuntu/)
9. ##### optional: use XDebug

    [](#optional-use-xdebug)

    - Activate XDebug in `.env`: ```
        PHP_XDEBUG_ENABLED=1

        ```
    - PHPStorm setup:
        - Settings... -&gt; Languages &amp; Frameworks -&gt; PHP -&gt; Servers: Add
            - name: has to be same as PHP\_IDE\_CONFIG value
            - port: 80
            - path-mapping: path of project root in host system
        - Setting -&gt; Languages &amp; Frameworks -&gt; PHP -&gt; Debug -&gt; DBGp Proxy:
            - `Port`: 9000
    - Start containers: ```
        $ docker-compose up -d
        ```
    - After clicking "Start Listening for PHP Debug Connections" in PHPStorm you can jump to web and cli breakpoints.
    - To activate/deactivate XDebug simply adjust ENV-Variable `PHP_XDEBUG_ENABLED` in `docker-compose.yml`and restart containers (`docker-compose down && docker-compose up -d`)

#### Cheat Sheet

[](#cheat-sheet)

- Execute symfony command ```
    $ docker-compose exec web php bin/console [SF-CONSOLE-COMMAND]
    ```
- Start webpack encore ```
    $ docker-compose exec web node_modules/.bin/encore dev-server
    ```
- Show containers and their status ```
    $ docker-compose ps
    ```
- Container shell access ```
    $ docker-compose exec web bash
    ```
- CLI connection to MySQL: ```
    $ mysql -u swapp -p -hmysql
    ```
- Stop services/container ```
    $ docker-compose stop
    ```
- Stop and delete container (incl. volumes, images und networks except data volumes) ```
    $ docker-compose down
    ```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance40

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity19

Early-stage or recently created project

 Bus Factor1

Top contributor holds 94.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/4519de11004bd7c92ac86b654f673fe3a133cb77d6ea411a9b596a088f916192?d=identicon)[robertfausk](/maintainers/robertfausk)

---

Top Contributors

[![robertfausk](https://avatars.githubusercontent.com/u/1651297?v=4)](https://github.com/robertfausk "robertfausk (1208 commits)")[![pueppiblue](https://avatars.githubusercontent.com/u/10506471?v=4)](https://github.com/pueppiblue "pueppiblue (58 commits)")[![violinist-bot](https://avatars.githubusercontent.com/u/27495990?v=4)](https://github.com/violinist-bot "violinist-bot (8 commits)")[![MatthiasPuschbeck](https://avatars.githubusercontent.com/u/12196343?v=4)](https://github.com/MatthiasPuschbeck "MatthiasPuschbeck (3 commits)")[![passowst](https://avatars.githubusercontent.com/u/12473785?v=4)](https://github.com/passowst "passowst (1 commits)")[![greenkeeper[bot]](https://avatars.githubusercontent.com/in/505?v=4)](https://github.com/greenkeeper[bot] "greenkeeper[bot] (1 commits)")[![waffle-iron](https://avatars.githubusercontent.com/u/6912981?v=4)](https://github.com/waffle-iron "waffle-iron (1 commits)")

---

Tags

api-platformaufsuchende-arbeitdocker-composedokumentationphpstreetworkswappsymfonysymfony-applicationsymfony-panthervuejs

### Embed Badge

![Health badge](/badges/knutschsoft-swapp/health.svg)

```
[![Health](https://phpackages.com/badges/knutschsoft-swapp/health.svg)](https://phpackages.com/packages/knutschsoft-swapp)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
