fdroid
Kherel 2021-01-08 13:37:28 +01:00
parent 0ed5fbdd2e
commit a8262229c0
6 changed files with 40 additions and 21 deletions

View File

@ -47,8 +47,8 @@ class HetznerApi extends ApiMap {
"ssh_keys": [],
"volumes": [],
"networks": [],
"user_data":
"#cloud-config\nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log \nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log",
'user-data':
'#cloud-config\nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log'
};
Response response = await client.post(
rootAddress,

View File

@ -0,0 +1,10 @@
enum InitializingSteps {
setHeznerKey,
setCloudFlareKey,
setDomainName,
setRootUser,
createServer,
checkCloudFlareDns,
startServer,
checkSystemDnsAndDkimSet,
}

View File

@ -1,5 +1,3 @@
import 'dart:io';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:hive/hive.dart';
@ -9,6 +7,7 @@ import 'package:selfprivacy/logic/api_maps/hetzner.dart';
import 'package:selfprivacy/logic/models/cloudflare_domain.dart';
import 'package:selfprivacy/logic/models/server_details.dart';
import 'package:selfprivacy/logic/models/user.dart';
import 'package:basic_utils/basic_utils.dart';
part 'app_config_state.dart';
@ -67,14 +66,20 @@ class AppConfigCubit extends Cubit<AppConfigState> {
];
var hasError = false;
for (var address in addresses) {
var res = await InternetAddress.lookup(address);
if (res.isEmpty || res[0].address != ip4) {
var res = await DnsUtils.lookupRecord(
address,
RRecordType.A,
provider: DnsApiProvider.CLOUDFLARE,
);
if (res.isEmpty || res[0].data != ip4) {
hasError = true;
break;
}
}
if (hasError) {
emit(state.copyWith(error: Exception('dns checking error')));
emit(state.copyWith(error: Exception('dns cloudflare checking error')));
} else {
print('check complete');
}
}

View File

@ -1,5 +1,3 @@
import 'dart:io';
import 'package:cubit_form/cubit_form.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@ -26,7 +24,6 @@ class InitializingPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
var cubit = context.watch<AppConfigCubit>();
print(cubit.state.error);
var actualPage = [
_stepHetzner(cubit),
_stepCloudflare(cubit),
@ -269,9 +266,7 @@ class InitializingPage extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Spacer(
flex: 2,
),
Spacer(flex: 2),
BrandText.h2('Создать сервер'),
SizedBox(height: 10),
BrandText.body2('Создать сервер'),
@ -280,9 +275,7 @@ class InitializingPage extends StatelessWidget {
onPressed: isLoading ? null : appConfigCubit.createServer,
title: isLoading ? 'loading' : 'Создать сервер',
),
Spacer(
flex: 2,
),
Spacer(flex: 2),
BrandButton.text(
onPressed: () => _showModal(context, _HowHetzner()),
title: 'Что это значит?',
@ -295,7 +288,6 @@ class InitializingPage extends StatelessWidget {
Widget _stepCheck(AppConfigCubit appConfigCubit) {
var state = appConfigCubit.state;
var error = state.error;
print(error);
return Builder(builder: (context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -320,7 +312,6 @@ class InitializingPage extends StatelessWidget {
duration: Duration(minutes: 10),
callback: () {
appConfigCubit.checkDns();
// print(state.server.ip4);
},
),
],
@ -341,9 +332,7 @@ class InitializingPage extends StatelessWidget {
return Container(
height: 500,
padding: brandPagePadding2,
child: BrandCard(
child: child,
),
child: BrandCard(child: child),
);
}
}

View File

@ -36,6 +36,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.5.0-nullsafety.1"
basic_utils:
dependency: "direct dev"
description:
name: basic_utils
url: "https://pub.dartlang.org"
source: hosted
version: "2.7.0-rc.4"
bloc:
dependency: transitive
description:
@ -539,6 +546,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
pointycastle:
dependency: transitive
description:
name: pointycastle
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
pool:
dependency: transitive
description:

View File

@ -28,6 +28,7 @@ dependencies:
dev_dependencies:
flutter_test:
sdk: flutter
basic_utils: ^2.6.3
build_runner: ^1.10.11
flutter_launcher_icons: ^0.8.1
hive_generator: ^0.8.2