User guide · version 1.7.19

The situation on a map.
The sources behind each signal.

Strażnik combines public information about airborne threats and displays a score for each Polish province. Available on Android and in your browser.

Guide for 1.7.19. “My places”: 9 September 2026, Pixel 7, Android 14. Aircraft card: 1.7.18, 8 September; other unchanged screens are labelled individually. Tap any screenshot to open the full-size image.

Strażnik 1.7.16 on Pixel 7: English map labels and six green source indicators

What Strażnik does

A server collects information and calculates scores. The app displays the map, sources and history; Android receives alerts through push notifications. You do not need an account or your own server.

This is not an official warning system. Strażnik supplements sirens, Poland's Alert RCB messages and RSO warnings. It cannot guarantee detection or an earlier warning than official channels. Follow official instructions if you receive an Alert RCB or hear sirens, even when the app shows a calm map.

Combining sources helps interpret a situation, but an alert does not always require several sources. A qualifying official message, critical media report or nearby object may reach the threshold on its own. The score is an application indicator, not a probability of impact.

1. Installation and updates

  1. Download the latest Straznik.apk to your Android phone.
  2. Open it from Downloads. If Android asks, allow that browser or file manager to install apps from this source.
  3. Confirm installation and launch Strażnik. Allow the system to scan the file; do not disable Play Protect.
  4. Allow notifications, choose your province and check full-screen alert permission.

If the GitHub app intercepts the download link and stalls, open the link in your browser instead. A backup APK in the repository is also available.

Updating from inside the app

Strażnik checks for a release once a day. The update prompt includes the version and a description of the changes. You can also use Check for updates.

For a normal, non-critical update, choose Later (the updater may display Później) to dismiss it for the current session. If you choose to install, the app downloads the APK and checks its SHA-256, then Android asks you to confirm installation. Updating still downloads a file; you no longer need to find it manually.

Install over the existing app without uninstalling to keep your settings. The published APK is a signed release build. Check notification and full-screen permissions after updating.

Version 1.7.16 settings showing sound tests and Check for updates
The installed version and the manual update check.

2. My places, language and permissions

Open Open My places. You can save up to 8 profiles, such as Home, Work and Trip. Each has a province and may optionally store a voluntary one-time location. Current notifications are routed by province.

Watch alerts creates a subscription for that province. Several places in one province create one subscription. Turning watching off does not delete the profile. The first saved place sets the map's initial region; an older single-province setting is migrated to a “Home” profile after updating.

A one-time location is read only after you press its button and stores the point, accuracy and reading time. There is no background tracking or online address lookup. You can remove the point separately.

Two operating levels: while the app is closed, minimised or the screen is locked, the notification is province-level. After receiving it, open Strażnik and keep it in the foreground. For a saved exact location, the app calculates the distance to a visible object on the device. It shows an estimated arrival time only when actual speed is available and the heading leads towards that point; otherwise it clearly says that ETA cannot be estimated reliably.

This calculation is not a separate distance alert and is not reliable in the background. It assumes an unchanged heading, may change as new data arrives, and does not replace RCB, RSO or emergency-service instructions.

Polski / English

Selecting a language immediately changes the settings preview. Save confirms it and reloads the app; Cancel keeps the previous language. English covers the interface, object and aircraft descriptions, and map labels. A source name may remain where an English name is unavailable. Quoted external messages are not necessarily translated, and some labels in the current APK may still appear in Polish.

Notifications

Check system notifications, alert channels and full-screen permission in settings. A shortcut to the app's battery optimisation settings is also available. Delivery and presentation depend on your phone's settings and restrictions.

My places in app 1.7.19: Home profile, a one-time exact location and province alert watching
The actual “My places” screen with a one-time Warsaw test point stored only in the emulator. Pixel 7, APK 1.7.19, 9 September 2026.

3. The map and new icons

Drag to move, pinch to zoom, and tap an object for details. A province's colour represents its score: below 2 points is blue, 2 or more is yellow, and 4 or more is red. In 3D mode, the height of the province increases with its score.

NEPTUN objects now have distinct shapes as well as colours. ADS-B planes and helicopters keep their familiar silhouettes. The legend no longer includes a separate country-background-colour section.

NEPTUN object icon library
ObjectAppearance
Drone / UAVA yellow fixed-wing silhouette.
ShahedAn orange delta wing.
FPV droneFour rotors; a local drone with no points in this model.
Reconnaissance droneA light-coloured silhouette with long wings.
Cruise missileA red body with wings.
Ballistic missileA slender pink shape with an exhaust flame.
KAB guided bombA yellow guided-bomb silhouette.
MiG-31K — carrierA purple aircraft silhouette from the NEPTUN source.
Unidentified objectA grey diamond with a question mark.

The circle around an object represents position uncertainty (±km). A larger circle means a larger uncertain area, not a larger destructive range. A dashed line shows the recorded flight path.

Current legend with nine distinct NEPTUN icons, uncertainty circle, aircraft, helicopter and score thresholds
Current symbols in version 1.7.16. The helicopter row in this APK still has a Polish label.

Object details and pictures

An object card shows its type, area, confirmations, confidence, position uncertainty, heading, distance from Poland and an estimated arrival time when available. AI illustrations are explicitly labelled as reference images: they do not depict the tracked object and must not be used to identify a model.

Tap an ADS-B aircraft for its callsign, registration, country, model, role, altitude, speed and heading, where available. Follow track displays the collected trail. Without a public transponder signal or reception, there may be no position: the map does not show every military aircraft.

Model photographs (1.7.19): aircraft and helicopter cards use a local library of real photographs. Each is an example aircraft, not the tracked one; equipment and subvariant may differ. When the provider supplies a known type code without a variant description, the app now shows a reviewed family example instead of an empty area. An explicitly conflicting description still blocks the photo. The library now also includes the Boeing 737-800. Author, source and license remain visible below each photo.

RCH5078 C-17 historical card in English, with a model example photograph, author, source and license
Actual observation of RCH5078; the photograph depicts another C-17. Pixel 7, APK 1.7.18, 8 September 2026. Scroll inside the card for more details.
NEPTUN object card with a labelled reference illustration and observation details
Object details and a reference illustration, not a photograph of the tracked object.

4. Buttons and closing panels

ControlAction
STRAŻNIK + six indicatorsStatus of NEPTUN, UA Alerts, ADS-B, RSS, RCB and PAŻP. Green means a layer is available, not that safety has been confirmed. Tapping the app name also opens its explanation on a phone.
☕ / ?Optional support for the author / information about the app and its features.
Legend / 🗺️Object icons, uncertainty and score thresholds.
🛰️Foreign aircraft and recorded observations.
3D / 2DSwitch between raised provinces and a flat map.
🔔 / ⚙ / ☰Notifications / settings / signals panel.
⏱ / ◎ / ⤢12-hour history / return to my region / the wider area.
Download app / User guideWebsite-only buttons; they are not displayed in the APK.

The signals panel no longer collapses after a few seconds. Close it with the cross or by tapping the map outside it. The legend and other panels also support outside clicks. In settings, use Save to confirm changes.

5. The signals panel

opens the province cards. Tap a region to inspect the sources behind its score. Your region has an outline and a “my region” label. The panel includes signals from the 60-minute window, objects near the border and public military aviation observations.

Signals are ordered by their actual counted contribution. The displayed number reflects source caps and ageing; a crossed-out value explains why the full raw score was not counted. Successive reports of the same track do not mean additional physical objects.

A Spillover entry explains a contribution from another province. Media titles link to their sources: check the original text and publication time.

Cameras in the region opens available views of the surroundings. These are ground cameras, not airborne-object detectors.

Current province panel with Podlaskie marked as my region and the signals list below
The actual calm state at capture time. Values change with incoming data.

6. Twelve hours of history

Example: the sources behind 2.2 points

This user-supplied screenshot shows elevated attention in Lublin province and contributions from an RCB (RSO) notice and NEPTUN observations. The bottom bar lists four signals; not all of them fit in the visible portion of the panel.

PODGLĄD HISTORII — 15:11 (−10 min) means “history preview”, showing an earlier moment. This is a historical example, not a current alert. Its scores are not a reference table of current weights or evidence of notification delivery time.

Historical Lublin province: yellow level at 2.2 points, RCB (RSO) entry, NEPTUN map objects and history slider at 15:11, in Polish
User-supplied historical example: elevated attention in Lublin province and its contributing sources. Original Polish screenshot, with no content changes.

Press , then drag the slider left or right. The map and panel show the selected time rather than the live situation. The label gives the time and minutes in the past. ● LIVE / NA ŻYWO returns to the current view (this button still has a Polish label in the captured APK).

A history bundle is downloaded to your device and scrolling uses that local buffer. Every finger movement does not make a separate server request. Snapshots are normally recorded every two minutes: this is playback of saved samples, not continuous radar footage. The available history depends on continuous recording and source availability.

Consistent aircraft time (1.7.17): the map, aircraft list, 🛰 panel and aircraft details all follow the selected time. Later events cannot appear in an earlier view. ● LIVE returns to current data.

A dimmed foreign aircraft is a last recorded position filling a gap between snapshots. It uses only an earlier journal entry, at most 2.5 minutes before the selected time. Details show the record time and explain that the aircraft is absent from the snapshot. “Disappeared” means missing from the available data, not a landing or shoot-down; its timestamp is not necessarily the last transponder emission time. Counters separate snapshot aircraft from last observations.

The 🛰 panel downloads a small server journal covering the last 12 hours, including times when your app was closed. It merges local entries without duplicating matching transitions and excludes entries later than the selected time. Refreshes are limited to one request per minute, not one per slider movement. Journal unavailability and local fallback mode are explicitly labelled. These observations do not add points.

English history in 1.7.17 on Pixel 7, with slider and snapshot aircraft count
Real server history in APK 1.7.17 — 7 September 2026.
Foreign aircraft panel following the selected historical time, including journal status
The 🛰 panel follows the map time — Pixel 7, 1.7.17.

A signal can remain in the 60-minute list after an object disappears from the map. The list describes recorded events; the map shows positions available in a particular snapshot. Disappearance does not prove an interception. For some foreign aircraft, a faded last observation may appear, distinguished from a current position.

7. Yellow and red alerts

Yellow-level test: expanded Android elevated-attention notification for Lublin province, 2.4 points, in Polish
Yellow level — system notification. Expanded view with the reasons. Historical phone capture from a test of an earlier app version, in Polish. Notification styling depends on Android and the manufacturer.
Red full-screen high-priority test alert in Polish, with acknowledge and open-map buttons
Red level — full-screen alert. Acknowledge silences the alarm; the other button opens the map. Historical test capture in Polish from an earlier version, not the current 1.7.16 APK.

These two images document earlier tests, not a current threat. Their messages, scores and distances are test examples, not a table of current scoring rules. A screenshot cannot reproduce sound or screen flashing.

ScoreBehaviour
Below 2 pointsInformation remains on the map and in the panel, without a score-threshold alert.
2 to below 4 pointsYellow “ELEVATED ATTENTION”: a short attention sound and a notification, which may appear as heads-up.
4 points or moreRed “HIGH PRIORITY”: a siren, vibration and a full-screen alert when permissions and the system allow it. Acknowledging the alert silences it.

includes Test: attention, Test: siren and Test: full alert. These are local tests on your device; they do not confirm push delivery from the server. Version 1.7.15 increased the red siren's level. Actual loudness also depends on the phone and its audio settings.

Check full-screen alerts on your own phone. Without permission, a red alert may remain a notification. Check volume, channel settings, Do Not Disturb and battery restrictions too. Recheck permissions after an update.

8. Push, the website and fallback mode

Android: the server sends push notifications through Firebase for your selected province. This is designed to work while the app is closed or the screen is locked. It requires connectivity and correct phone settings. Android's “Force stop” can prevent delivery until the app is opened again. The old permanently running “listening active” service is no longer used.

Browser: bookmarking the address does not enable alerts. An open tab can display and play alerts; sound requires user interaction. Delivery with the tab closed requires a separate permission and Web Push subscription, plus browser and operating-system support. Its behaviour is not equivalent to Android's native full-screen alert.

Server outage: after unsuccessful connection attempts, the open app starts its built-in engine. It still needs internet access to the sources. The current code checks server recovery every minute and stops its own polling once it reconnects. Switching is postponed during an active alert. Fallback mode does not provide replacement round-the-clock monitoring after the app is closed.

A test announcement may appear as a message you can acknowledge and close. An announcement alone does not verify alarm delivery.

9. How scoring works

The basic window is 60 minutes. A signal retains full weight for 30 minutes, then fades linearly to zero. Each source class has a contribution cap; another observation of the same NEPTUN track is not counted as a new object.

SourceWhat is consideredWeight / cap
NEPTUN objectsType, reported object count, border distance, course, confidence, confirmations and observation status.Up to 8 points in total
UA alertsAn air alert in selected western Ukrainian regions.1 point
MediaTopic and context matching: an ordinary match adds 1.5 points; a critical report adds 2. Filters reject advice, tests and cancellations, among other cases, but can make mistakes.Maximum 2 points
RCB / RSOQualifying published airborne-threat warnings. Source publication time can differ from SMS delivery time.2 points, cap 2
ADS-BAt least 3 aircraft and more than twice the baseline for the same time of day, collected over 7 days.1 point, cap 1
PAŻP / PANSARare ADHOC/R/NPZ/D zones from the ground to a flight level, with filters for routine and repeated designators. Activation alone does not prove a military threat.0.5 points, cap 1
Baltic mediaLT/LV/EE incidents as context for Podlaskie and Warmian-Masurian. A recognised cancellation clears the same incident's contribution.1 point
Neighbouring airspaceSelected LT/EE restrictions and northern Romania (47°N and above). Latvian zones and official LV notices are observation-only, with no points.0.3 points, cap 0.6

Objects: a smooth distance curve

Type weights: ballistic 3.0; MiG-31K 2.6; cruise missile 2.4; KAB 1.8; Shahed 1.4; UAV 1.1; reconnaissance drone 0.5; FPV 0. This is multiplied by the square root of the reported object count and factors for data quality and course, among others.

The distance factor is interpolated through 0 km ×1.7; 15 ×1.6; 45 ×1.3; 80 ×1.0; 110 ×0.7; 150 ×0.4; 200 ×0.25; 250 ×0.1. At 250 km or beyond the ordinary contribution is zero. Unknown-course scoring is reduced and limited to nearby objects. Missiles and MiG-31K within 60 km with at least two confirmations have a 2-point floor, scaled by the course factor.

Estimated arrival time

The card estimates time to Poland's border and to the selected province's boundary, not to your address. It uses a source speed where available, otherwise a typical class speed. A 2.5-minute buffer based on earlier source-delay measurements is deducted. This buffer does not cover every possible delay.

The current ETA threshold mechanism refers to Poland's border: with a known heading, at least two confirmations and medium or high confidence, it may raise an object's contribution to 2 points at ≤10 minutes or 4 points at ≤5 minutes. It does not add a second set of points for the same object.

Arrival time is an approximation assuming continued flight. It does not account for interception, a change of course or the full uncertainty of the data. Do not treat it as a countdown of time available to seek shelter. If the heading is unavailable, the app indicates the estimation limitation.

Spillover to neighbouring provinces

A source province with at least 2 points can contribute 40% to its first ring of neighbours, 16% to its second, and so on within the algorithm's limits. For example, 5 points in Lublin contributes 2 to the first ring and 0.8 to the second. This provides regional context; it does not predict an object's route. The panel explains each contribution.

10. Features in the current release

Polish and English

Preview the language before saving, with English aircraft descriptions and geographic map labels.

Distinct object icons

Separate silhouettes for drones, missiles, KAB and unidentified objects, a current legend and labelled reference illustrations.

Easier inspection

A panel without timed collapse, object details, local history scrolling and foreign aircraft observations.

Updates and the siren

Release notes in the updater, deferral of non-critical updates and an increased red-siren level.

Full change history: GitHub releases.

11. Limitations and troubleshooting

12. Your own server — optional

A blank address under Advanced: shared backend selects the default Strażnik server. Enter your own address only if you operate a compatible backend and its notification services.

HTTPS with a system-trusted certificate is required. External HTTP and manually installed certificates are not supported by the production APK. The app's internal localhost address is a separate technical exception. Backend setup is documented in the repository README.

13. Privacy and sources

No account, advertising or behavioural analytics. “My places” profiles, names and one-time location points are stored locally; Android backup is disabled for the app. Exact locations are not sent to the Strażnik VPS or notification content. Province names and the device subscription identifier are handled by the push provider. The phone's location system may use system and network providers, so Strażnik does not claim that the position reading itself is entirely offline.

The server and providers of maps, notifications, photos and data receive network requests and may keep ordinary technical logs. No in-app telemetry does not mean no network traffic. Downloaded server history is replayed from device memory; the built-in engine stores its own snapshots locally. Size depends on data volume and covers a rolling 12-hour window.